当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby HTTPHeader.set_form用法及代码示例


本文简要介绍ruby语言中 Net::HTTPHeader.set_form 的用法。

用法

set_form(params, enctype='application/x-www-form-urlencoded', formopt={})

Set 一个 HTML 表单数据集。

params

要设置的表单数据,应该是可枚举的。请参阅下面的更多细节。

enctype

用于对表单提交进行编码的内容类型,应为 application/x-www-form-urlencoded 或 multipart/form-data。

formopt

一个选项哈希,支持以下选项:

:边界

多部分消息的边界。如果没有给出,将使用随机边界。

:字符集

表单提交的字符集。非文件字段的所有字段名称和值都应使用此字符集进行编码。

每个参数项都应响应 each 并产生 2-3 个参数,或 2-3 个元素的数组。产生的论点应该是:

* The name of the field.
* The value of the field, it should be a String or a File or IO-like.
* An options hash, supporting the following options, only
  used for file uploads:
  :filename :: The name of the file to use.
  :content_type :: The content type of the uploaded file.

每个项目都是一个文件字段或一个普通字段。如果 value File 对象或 opt 哈希具有 :filename 键,则该项目被视为文件字段。

如果Transfer-Encoding 设置为分块,这将使用分块编码发送请求。因为分块编码是 HTTP/1.1 的特性,所以在使用分块编码之前,您应该确认服务器支持 HTTP/1.1。

例子:

req.set_form([["q", "ruby"], ["lang", "en"]])

req.set_form({"f"=>File.open('/path/to/filename')},
             "multipart/form-data",
             charset: "UTF-8",
)

req.set_form([["f",
               File.open('/path/to/filename.bar'),
               {filename: "other-filename.foo"}
             ]],
             "multipart/form-data",
)

另请参阅 RFC 2388、RFC 2616、HTML 4.01 和 HTML5

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 HTTPHeader.set_form。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。