我正在使用python3 urllib向api发出请求。这是我的代码,
headers = {}
headers['Content-Type']='application/x-www-form-urlencoded; charset=UTF-8'
#headers['X-Csrf-Token']= {'mode: cors'}
req = urllib.request.Request(url=URL, headers=headers, method='POST')
res = urllib.request.urlopen(req)
print(res.read())
我得到以下回复,
urllib.error.HTTPError: HTTP Error 415: Unsupported Media Type
API端点工作正常,我已经使用Postman进行了测试。这是完成工作的等效javascript代码,
return fetch(url, { credentials : 'include', method: 'post'})
所以我假设我要找到一种方法来向标头添加凭据。我可以在Python中执行包含并行的凭据,还是必须获取特定cookie并在请求中设置它。任何帮助表示赞赏。
答案 0 :(得分:0)
错误415表示'内容类型'的问题。 '应用程序/ X WWW的窗体-urlencoded'没有任何参数。
https://www.w3.org/TR/html5/iana.html#application/x-www-form-urlencoded
关于fetch()"凭证",您需要能够维护会话(根据需要发送cookie)。 使用请求库的会话
会容易得多http://docs.python-requests.org/en/master/user/advanced/#session-objects