0

我试图用名称和值创建一个字典:

{
'name':'value',
'name':'value',
'name':'value',
...
}

试图从 Chrome 检查器产生 POST 行:

yield '------WebKitFormBoundary48hldbqBzWdSiBZ6'
yield 'Content-Disposition: form-data; name="__EVENTTARGET"'
yield 'ctl00$ctl00$cphContent$cphContent$lnkEnter'
yield '------WebKitFormBoundary48hldbqBzWdSiBZ6'
yield 'Content-Disposition: form-data; name="__EVENTARGUMENT"'
yield ''
...

在这种情况下,python 崩溃并出现以下错误:

for k, vs in to_key_val_list(data)
ValueError: too many values to unpack

而且我还尝试了常规表单数据 POST:

name=value&name=value&name=value...

你能告诉我如何创建多部分正文以及如何使用请求发布它吗?
没有要发送的文件,只有名称和值。

4

1 回答 1

0

如果没有更具体的例子,很难确切地知道你想要做什么。

您的第一个示例可能有效,也可能无效,具体取决于您实际使用它的方式。您是否将其传递给 files 参数?

你的第二个永远不会工作。有一个需要设置的特定标头,multipart/form-data它必须包括边界,在这种情况下------WebKitFormBoundary48hldbqBzWdSiBZ6或其中的一些字符串。接下来,您不应该将生成器传递给 files 参数,而是在正确设置标头后将其传递给 data 参数。

最后,如果您尝试执行multipart/form-dataPOST,那么 URL 编码的 POST 将不会以相同的方式工作,除非您的网站非常灵活。

于 2013-10-15T00:19:48.190 回答