我正在尝试向 restful 网络服务发送 POST 请求。我需要在请求中传递一些 json
。它与下面的 curl 命令一起工作
curl --basic -i --data '<json data string here>' -H Content-type:"text/plain" -X POST http://www.test.com/api
我需要一些帮助来从 Python 发出上述请求。到目前为止,要从 python 发送此 POST 请求,我有以下代码:
import urllib
url='http://www.test.com/api'
params = urllib.urlencode... #What should be here ?
data = urllib.urlopen(url, params).read()
我有以下三个问题:
- 这是发送结果的正确方式吗?
- 我应该如何指定参数值?
- 是否需要指定内容类型?
请帮忙 谢谢你
最佳答案
httplib
的文档有一个 example发送帖子请求。
>>> import httplib, urllib
>>> params = urllib.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
... "Accept": "text/plain"}
>>> conn = httplib.HTTPConnection("bugs.python.org")
>>> conn.request("POST", "", params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
302 Found
>>> data = response.read()
>>> data
'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
>>> conn.close()
关于python - 从 python 向 web 服务发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7122015/