如何POST多部分/表单数据?

问题描述:

我试图创建的名称和值的字典:如何POST多部分/表单数据?

{ 
'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 '' 
... 

在这种情况下,蟒蛇坠毁具有以下错误:

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

而且我也尝试了常规形式的数据POST:

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

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

这是很难知道你想没有更具体的例子做什么。

你的第一个例子中可以工作或可能不取决于你如何使用它。你是否将它传递给files参数?

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

最后,如果你想进行multipart/form-data POST然后URL编码的POST不会,除非你的网站是非常灵活的工作方式相同。