【发布时间】:2015-10-27 21:25:59
【问题描述】:
我正在尝试将以下 curl 请求转换为 pycurl:
curl -v
-H Accept:application/json \
-H Content-Type:application/json \
-d "{
name: 'abc',
path: 'def',
target: [ 'ghi' ]
}" \
-X POST http://some-url
我有以下 python 代码:
import pycurl, json
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://some-url')
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
data = json.dumps({"name": "abc", "path": "def", "target": "ghi"})
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.setopt(pycurl.VERBOSE, 1)
c.perform()
print curl_agent.getinfo(pycurl.RESPONSE_CODE)
c.close()
执行此操作时出现错误 415:不支持的媒体类型,因此我已更改:
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
进入:
c.setopt(pycurl.HTTPHEADER, [ 'Content-Type: application/json' , 'Accept: application/json'])
这次我有 400: Bad request。但是带有 curl 的 bash 代码可以工作。你知道我应该在 python 代码中修复什么吗?
【问题讨论】:
标签: python rest post curl pycurl