使用AppEngine发送具有相同名称的多个POST数据项

nip*_*p3o 6 python google-app-engine urlfetch

我尝试使用AppEngine中的urlfetch将POST数据发送到服务器.其中一些POST数据项具有相同的名称,但具有不同的值.

form_fields = {
   "data": "foo",
   "data": "bar"
}

form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch(url="http://www.foo.com/", payload=form_data, method=urlfetch.POST, headers={'Content-Type': 'application/x-www-form-urlencoded'})
Run Code Online (Sandbox Code Playgroud)

然而,在这个例子中,服务器似乎receieve只有一个名为项data,与价值bar.我怎么能解决这个问题?

Wil*_*hen 14

修改您的form_fields字典,以便将具有相同名称的字段转换为列表,并使用以下doseq参数urllib.urlencode:

form_fields = {
   "data": ["foo","bar"]
}

form_data = urllib.urlencode(form_fields, doseq=True)
Run Code Online (Sandbox Code Playgroud)

在这一点上,form_data'data=foo&data=bar',我认为你需要的.