【发布时间】:2009-10-31 08:04:43
【问题描述】:
使用 cURL 传递帖子数据需要输入的名称。但是,我想知道如果没有为输入分配名称,你怎么能做到这一点?
curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" http://www.formpost.com/getthis/post.cgi
【问题讨论】:
使用 cURL 传递帖子数据需要输入的名称。但是,我想知道如果没有为输入分配名称,你怎么能做到这一点?
curl -d "user=foobar&pass=12345&id=blablabla&ding=submit" http://www.formpost.com/getthis/post.cgi
【问题讨论】:
有一个选项CURLOPT_POSTFIELDS。它允许您将 POST 数据设置为关联数组或字符串。因此,您需要使用后一个选项。
【讨论】:
你没有。 GET 查询和 POST 数据都以name=value 形式出现。唯一的例外是如果您将表单的提交编码更改为 enctype="multipart/form-data",因为您有文件上传控件。
更多信息请见http://www.cs.tut.fi/~jkorpela/forms/file.html#enctype:
HTML 规范为
enctype定义了两个可能的值:
enctype="application/x-www-form-urlencoded"(默认)
这意味着一种简单的编码,它将字段显示为由 & 号分隔的name=value字符串 (&),并对字符使用一些特殊的“转义”机制,例如%28用于“(”字符。如果人们尝试阅读它——它是由程序处理的,而不是由人类直接阅读的!
enctype="multipart/form-data"
这意味着对表单数据集进行编码,以便每个表单字段(更准确地说,每个“控件”)以适合该字段的格式呈现,并且数据集作为一个整体是包含这些呈现作为其组件的多部分消息.这对于“普通”表单来说是浪费的,但对于包含文件字段的表单来说,这是合适的,甚至是唯一可行的方式。多部分结构意味着每个文件都包含在一个较大的包中的一个不错的“包”中,内部“包”上有一个合适的“标签”(内容类型信息)。这种类型最初是在 RFC 1867 中定义的,但也在 RFC 2388 中进行了讨论(请参阅后面的 RFC 注释)。
【讨论】: