python---urllib3库
2021-02-05 09:14
标签:block post请求 支持 adl 默认 其他 元组 标准 handles urllib3是一个功能强大、条理清晰,用于HTTP客户端的python库,许多python的原生系统已经开始使用urllib3.urllib3提供了很多python标准库里没有的特性: 1、线程安全 urllib3用法示例: 1、导入urllib3模块 2、需要一个PoolManager示例来生成请求,由该实例对象处理与线程池的连接以及线程安全的所有细节,不需要任何人为操作: 3、通过request()方法创建一个请求: 查看request()方法源码: request()方法返回一个HTTPResponse对象。 可以通过request()方法向请求(request)中添加一些其他信息,如: 请求(request)中的数据项(request data)可包含: 在request()方法中,可以定义一个字典类型(dictionary),并作为headers参数传入: 对于GET、HEAD和DELETE请求,可以简单的通过定义一个字典类型作为fields参数传入即可: 对于PUT和POST请求(request),urllib3会自动将字典类型的field参数编码成表格类型. 在发起请求时,可以通过定义body 参数并定义headers的Content-Type参数来发送一个已经过编译的JSON数据: 使用multipart/form-data编码方式上传文件,可以使用和传入Form data数据一样的方法进行,并将文件定义为一个元组的形式(file_name,file_data): 使用timeout,可以控制请求的运行时间。在一些简单的应用中,可以将timeout参数设置为一个浮点数: Urllib3 可以自动重试幂等请求,原理和handles redirect一样。可以通过设置retries参数对重试进行控制。Urllib3默认进行3次请求重试,并进行3次方向改变。 例如,进行3次请求重试,但是只进行2次重定向: 如果想让所有请求都遵循一个retry策略,可以在PoolManager中定义retry参数: 或者 当在具体的request中再次定义retry时,会覆盖 PoolManager层面上的retry。 转载:https://www.cnblogs.com/KGoing/p/6146999.html python---urllib3库 标签:block post请求 支持 adl 默认 其他 元组 标准 handles 原文地址:https://www.cnblogs.com/whiteBear/p/12790439.html
2、连接池
3、客户端SSL/TLS验证
4、文件分部编码上传
5、协助处理重复请求和HTTP重定位
6、支持压缩编码
7、支持HTTP和SOCKS代理
8、100%测试覆盖率urllib3用法
生成请求(request)
def request(self, method, url, fields=None, headers=None, **urlopen_kw):
可通过dir()查看所有属性和方法dir(r)
只截取了一部分
#‘data‘, ‘decode_content‘, ‘enforce_content_length‘, ‘fileno‘, ‘flush‘, ‘from_httplib‘,
# ‘get_redirect_location‘, ‘getheader‘, ‘getheaders‘, ‘headers‘, ‘info‘, ‘isatty‘,
# ‘length_remaining‘, ‘read‘, ‘read_chunked‘, ‘readable‘, ‘readinto‘, ‘readline‘,
# ‘readlines‘, ‘reason‘, ‘release_conn‘, ‘retries‘, ‘seek‘, ‘seekable‘, ‘status‘,
# ‘stream‘, ‘strict‘, ‘supports_chunked_reads‘, ‘tell‘, ‘truncate‘, ‘version‘, ‘writable‘,
# ‘writelines‘]
给retries参数定义一个整型来改变请求重试的次数: