字段和多部分表单#

领域#

class urllib3.fields.RequestField(name, data, filename=None, headers=None, header_formatter=None)#

基类:object

请求正文参数的数据容器。

参数:
  • name (str) -- 此请求字段的名称。必须是Unicode。

  • data (_TYPE_FIELD_VALUE) -- 数据/值体。

  • filename (str | None) -- 请求字段的可选文件名。必须是Unicode。

  • headers (Mapping[str, str] | None) -- 一个可选的类似dict的头对象,最初用于字段。

  • header_formatter (Callable[[str, _TYPE_FIELD_VALUE], str] | None) --

在 2.0.0 版本发生变更: 这个 header_formatter 参数已弃用,将在urllib3 v2.1.0中删除。

_render_part(name, value)#

重写此方法以更改每个多部分标题参数的格式。默认情况下,此函数调用 format_multipart_header_param()

参数:
  • name (str) -- 参数的名称,仅限ASCII str

  • value (str | bytes) -- 参数的值,即 str 或UTF-8编码 bytes

返回类型:

str

classmethod from_tuples(fieldname, value, header_formatter=None)#

A RequestField 旧样式元组参数的工厂。

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

'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',

字段名和文件名必须是Unicode。

参数:
返回类型:

RequestField

make_multipart(content_disposition=None, content_type=None, content_location=None)#

将此请求字段设置为多部分请求字段。

此方法重写请求参数的“内容部署”、“内容类型”和“内容位置”头。

参数:
  • content_disposition (str | None) -- 请求正文的“Content-Disposal”。默认为‘Form-Data’

  • content_type (str | None) -- 请求正文的“内容类型”。

  • content_location (str | None) -- 请求正文的“内容位置”。

返回类型:

None

render_headers()#

呈现此请求字段的标题。

返回类型:

str

urllib3.fields.format_header_param(name, value)#

自 2.0.0 版本弃用: 已重命名为 format_multipart_header_param() 。将在urllib3 v2.1.0中删除。

参数:
返回类型:

str

urllib3.fields.format_header_param_html5(name, value)#

自 2.0.0 版本弃用: 已重命名为 format_multipart_header_param() 。将在urllib3 v2.1.0中删除。

参数:
返回类型:

str

urllib3.fields.format_header_param_rfc2231(name, value)#

helper函数使用rfc 2231中定义的策略格式化和引用单个头参数。

对于可能包含非ASCII值(如文件名)的标头参数特别有用。下面是 RFC 2388 Section 4.4

参数:
  • name (str) -- 参数的名称,字符串应仅为ascii。

  • value (str | bytes) -- 参数的值,提供为 bytesstr '.

返回:

RFC-2231格式的Unicode字符串。

返回类型:

str

自 2.0.0 版本弃用: 将在urllib3 v2.1.0中删除。这对以下对象无效 multipart/form-data 标头参数。

urllib3.fields.format_multipart_header_param(name, value)#

设置单个多部分标题参数的格式并将其引起来。

这是在 WHATWG HTML Standard 截至2021/06/10,与当前浏览器和cURL版本的行为相匹配。假设值为UTF-8。这个 \n\r ,以及 " 字符是百分比编码的。

参数:
  • name (str) -- 参数的名称,仅限ASCII str

  • value (str | bytes) -- 参数的值,即 str 或UTF-8编码 bytes

返回:

一根线 name="value" 带着逃逸的价值。

返回类型:

str

在 2.0.0 版本发生变更: 与截至2021/06/10的WHATWG HTML标准匹配。控制字符不再采用百分比编码。

在 2.0.0 版本发生变更: 重命名自 format_header_param_html5format_header_param 。旧名称将在urllib3v2.1.0中删除。

urllib3.fields.guess_content_type(filename, default='application/octet-stream')#

猜猜文件的“内容类型”。

参数:
  • filename (str | None) -- 猜测使用的“内容类型”的文件名 mimetypes .

  • default (str) -- 如果猜不到“内容类型”,则默认为 default .

返回类型:

str

多部分形式#

urllib3.encode_multipart_formdata(fields, boundary=None)#

编一本字典 fields 使用多部分/表单数据mime格式。

参数:
返回类型:

tuple[bytes, str]

urllib3.filepost.choose_boundary()#

我们令人难堪的简单替代美托尔。选择边界。

返回类型:

str

urllib3.filepost.iter_field_objects(fields)#

在字段上迭代。

支持(k,v)元组和dict的列表,以及 RequestField .

参数:

fields (Sequence[Tuple[str, str | bytes | Tuple[str, str | bytes] | Tuple[str, str | bytes, str]] | RequestField] | Mapping[str, str | bytes | Tuple[str, str | bytes] | Tuple[str, str | bytes, str]]) --

返回类型:

Iterable[RequestField]