请求方法

class urllib3.request.RequestMethods(headers=None)

基类:object

为实现 urlopen() 方法,例如 HTTPConnectionPoolPoolManager .

提供用于生成常见类型的http请求方法的行为,并决定使用哪种类型的请求字段编码。

明确地,

request_encode_url() 用于发送字段编码在url中的请求(例如get、head、delete)。

request_encode_body() 用于发送字段编码为 body 使用multipart或www form urlencoded的请求(例如post、put、patch)。

request() 对于任何类型的请求,它都会查找适当的编码格式,并使用上述两种方法之一发出请求。

初始值设定项参数:

参数

headers -- 要包含在所有请求中的头,除非显式给定了其他头。

request(method, url, fields=None, headers=None, **urlopen_kw)

使用发出请求 urlopen() 使用适当的编码 fields 基于 method 使用。

这是一种方便的方法,需要最少的手动操作。它可以在大多数情况下使用,但仍然有必要在必要时选择更具体的方法,例如 request_encode_url()request_encode_body() ,甚至最低水平 urlopen() .

request_encode_body(method, url, fields=None, headers=None, encode_multipart=True, multipart_boundary=None, **urlopen_kw)

使用发出请求 urlopen()fields 编码在身体里。这对于post、put、patch等请求方法很有用。

什么时候? encode_multipart=True (默认),然后 urllib3.filepost.encode_multipart_formdata() 用于使用适当的内容类型对负载进行编码。否则 urllib.urlencode() 与“application/x-www-form-urlencoded”内容类型一起使用。

发布文件时必须使用多部分编码,而且在其他时间使用它也是相当安全的。但是,它可能会中断请求签名,例如使用oauth。

支持可选的 fields 键/值字符串和键/文件元组的参数。filetuple是一个(filename,data,mime type)元组,其中mime类型是可选的。例如::

fields = {
    'foo': 'bar',
    'fakefile': ('foofile.txt', 'contents of foofile'),
    'realfile': ('barfile.txt', open('realfile').read()),
    'typedfile': ('bazfile.bin', open('bazfile').read(),
                  'image/jpeg'),
    'nonamefile': 'contents of nonamefile field',
}

上载文件时,提供文件名(元组的第一个参数)是可选的,但建议最好模拟浏览器的行为。

注意如果 headers 提供时,“content type”头将被覆盖,因为它依赖于用于组成请求主体的动态随机边界字符串。随机边界字符串可以显式地设置为 multipart_boundary 参数。

request_encode_url(method, url, fields=None, headers=None, **urlopen_kw)

使用发出请求 urlopen()fields 在URL中编码。这对于get、head、delete等请求方法很有用。

urlopen(method, url, body=None, headers=None, encode_multipart=True, multipart_boundary=None, **kw)