我试图创建一个包含名称和值的字典:
{
'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...
您能告诉我如何创建多部分主体以及如何使用请求发布它吗?
没有要发送的文件,只有名称和值。
答案 0 :(得分:0)
如果没有更具体的例子,很难确切知道你要做什么。
您的第一个示例可能有效,也可能取决于您实际使用它的方式。你是否将它传递给files参数?
你的第二个永远不会工作。需要为multipart/form-data
设置一个特定的标头,它必须包含边界,在本例中为------WebKitFormBoundary48hldbqBzWdSiBZ6
或某些字符串。接下来,您不应该将生成器传递给files参数,而是在正确设置标题后将其传递给data参数。
最后,如果您尝试执行multipart/form-data
POST,那么除非您的网站非常灵活,否则网址编码的POST将无法以相同的方式运行。