【发布时间】:2016-03-14 15:48:14
【问题描述】:
我正在尝试将以下 curl 请求转换为 pycurl:
curl -v \
--user username:passwd \
-H X-Requested-By:MyClient \
-H Accept:application/json \
-X POST \
http://localhost:7001/some_context
而且它有效。以下不起作用:
import pycurl, json
url = "http://localhost:7001/some_context"
c = pycurl.Curl()
data = json.dumps(None)
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.setopt(pycurl.URL, url)
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json', 'X-Requested-By:MyClient'])
c.setopt(pycurl.VERBOSE, 1)
c.setopt(pycurl.USERPWD, "username:passwd")
c.perform()
但执行此操作时出现错误 415:不支持的媒体类型。你有什么主意吗?我宁愿继续使用 pycurl——我知道 requests 库...
【问题讨论】:
-
我注意到在第一个示例中,您没有传递任何数据。在第二个中,您传递一个
application/x-www-form-urlencoded字符串。 -
这是一个有用的技术:用
http://httpbin.org/post替换两个示例中的 URL 并检查详细输出。