hand
_1_5_84
4
返回栏目
1k
9k
1k
1k
5k
1k
1k
1k
1k
3k
2k
1k
0.8k
2k
3k
1k
1k
0.7k
0.9k
1k
0.6k
0.4k
0.4k
0.3k
3k
2k
9k
0.4k
0.4k
0.8k
0.5k
3k
5k
1k
2k
2k
3k
5k
1k
1k
0.4k
0.5k
0.4k
0.6k
0.7k
1k
0.4k
0.3k
4k
0.5k
0k
0.3k
0k
0.2k
0.2k
0.3k
0.9k
0.9k
0.1k
0.9k
0.9k
1k
0.5k
6k
0.3k
0.4k
0.7k
0.6k
8k
3k
1k
1k
1k
1k
0k
2k
1k
1k
0.2k
5k
4k
5k
0.4k
0.8k
1k
1k
1k
0.1k
2k
1k
2k
6k
0k
2k
7k
1k
5k
2k
3k
1k
0k
1k
0.9k
0.4k
0.2k
1k
3k
4k
1k
1k
1k
2k
3k
0.7k
0.3k
0.5k
0.6k
1k
0.9k
3k
0.3k
4k
返回python栏目
作者:
贺及楼
成为作者
更新日期:2024-10-28 10:04:13
Python 的 urllib3
库是一个强大的HTTP客户端库,用于发送HTTP请求和处理HTTP响应。它提供了连接池、文件上传、会话管理等功能,支持HTTP/1.1、连接复用和持久连接。urllib3
还提供了多种异常类型,用于处理请求过程中可能出现的错误。它是许多高阶HTTP客户端库的基础,如 requests
库,用于实现更复杂的网络通信和数据传输任务。
pip install urllib3
import urllib3
import json
http = urllib3.PoolManager()
http = urllib3.PoolManager(timeout=3.0) # 让所有的request都遵循一个timeout限时
# 创建PoolManager对象生成请求,
# 由该实例对象处理与线程池的连接以及线程安全的所有细节
def req(url):
try:
# url
url = url
# 请求头
# header = {
# 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64)',
# 'Host':'httpbin.org'
# }
# body
# 请求体
data = {
'word':'hello'
}
data = json.dumps(data).encode()
# json.dumps方法可以将python对象转换为json对象
# body
# 二进制文件
# with open('xxx.jpg','rb') as f2:
# data = f2.read()
# fields
# 使用multipart/form-data编码方式上传文件
# 可以使用和传入Form data数据一样的方法进行
# 并将文件定义为一个元组的形式
# (file_name,file_data):
# with open('1.txt','r+',encoding='UTF-8') as f:
# file_read = f.read()
# request(self, method, url, fields=None, headers=None, **urlopen_kw)
response = http.request('GET', url) # get方式请求
response = http.request('POST', url, body=data, headers=header)
response = http.request('POST', url, body=data, headers=header, timeout=3.0) # 限时
response = http.request('POST', url, body=data, headers=header, retries=5) # 重试,默认3次
response = http.request('POST', url, body=data, headers=header, redirect=False) # 重定向
response = http.request('POST', url, fields={'filefield':('1.txt', file_read, 'text/plain')})
response_status = response.status
response_data = response.data.decode('utf-8')
print(response_status) # 获得状态码
print(response_data) # html源码(utf-8解码)
text = json.loads(response_data)
# 如果返回 {"msg":"ok"}
msg = text["msg"]
print(msg)
except:
print("失败")
print(response_status)
raise
def run():
try:
url = ""
r = req(url)
print(r)
except:
print(r)
if __name__ == "__main__":
run()
python
整章节共122节
快分享给你的小伙伴吧 ~