我正在使用外部API,但遗憾的是,它没有很好的错误记录功能。
我使用django 1.9.5并请求2.11.1。
当我在本地计算机上使用内置python服务器(python manage.py runserver)发出以下请求时,我得到了200状态代码,所以这样可以正常工作。
r = requests.post(
'https://plazaapi.bol.com/offers/v1/%s' % product.ean, data=xml_to_send,
headers=headers)
标题是日期字典,授权代码和内容类型
但是由于GAE上的请求根据本网站上的其他答案存在问题,我尝试使用requests_toolbelt monkeypatch和urlfetch,但我总是得到以下错误:
请求包含无效的身份验证标头
使用monkeypatch的代码:
import requests_toolbelt.adapters.appengine
requests_toolbelt.adapters.appengine.monkeypatch()
r = requests.post(
'https://plazaapi.bol.com/offers/v1/%s' % product.ean, data=xml_to_send,
headers=headers)
和
from google.appengine.api import urlfetch
r = urlfetch.fetch(
url='https://plazaapi.bol.com/offers/v1/%s' % product.ean,
payload=xml_to_send,
method=urlfetch.POST,
headers=headers,
follow_redirects=False) # tried this, but has no effect.
我设置的标题是:
headers = {'Content-Type': 'application/xml',
'X-BOL-Date': date,
'X-BOL-Authorization': signature}
GAE是否正在更改我的请求并添加标头?如果是这样,我可以阻止它 从这样做?