如何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不会,除非你的网站是非常灵活的工作方式相同。