python 请求错误 415
python requests Error 415
我正在尝试通过来自 flipkart 的 python 请求获取 pdf 流。
但是在 运行 label.status_code
我得到 415.
我的代码:
class FlipkartAPI:
def __init__(self, token):
self.token = token
self.session = self.get_session()
def get_session(self):
session = requests.Session()
session.headers.update({'Authorization': 'Bearer %s' % self.token,
'Content-type': 'application/json',})
return session
def fetch_labels(self, orderItemIds):
self.session.headers.update({'Content-type':'application/octet-stream'})
url = "https://api.flipkart.net/sellers/orders/labels"
payload = {'orderItemId':','.join(orderItemIds)}
return self.session.get(url, params=payload, stream=True)
函数调用:
fk = FlipkartAPI(token)
label = fk.fetch_labels(oiids)
print label.status_code
print label.url
print label.content
我得到:
415
https://api.flipkart.net/sellers/orders/labels?orderItemId=230005995
文档的 link 是:Documentation
我在互联网上搜索,它说错误是针对不支持的媒体类型。
那我做错了什么?
不要设置 Content-Type
header,您发送的是 GET 请求,该请求没有 body,因此没有设置类型的内容 .
而是设置 Accept
header,如文档中所述。不要为整个 session 设置 header,仅针对此请求:
def fetch_labels(self, orderItemIds):
url = "https://api.flipkart.net/sellers/orders/labels"
headers = {'Accept': 'application/octet-stream'}
payload = {'orderItemId':','.join(orderItemIds)}
return self.session.get(url, params=payload, headers=headers, stream=True)
我正在尝试通过来自 flipkart 的 python 请求获取 pdf 流。
但是在 运行 label.status_code
我得到 415.
我的代码:
class FlipkartAPI:
def __init__(self, token):
self.token = token
self.session = self.get_session()
def get_session(self):
session = requests.Session()
session.headers.update({'Authorization': 'Bearer %s' % self.token,
'Content-type': 'application/json',})
return session
def fetch_labels(self, orderItemIds):
self.session.headers.update({'Content-type':'application/octet-stream'})
url = "https://api.flipkart.net/sellers/orders/labels"
payload = {'orderItemId':','.join(orderItemIds)}
return self.session.get(url, params=payload, stream=True)
函数调用:
fk = FlipkartAPI(token)
label = fk.fetch_labels(oiids)
print label.status_code
print label.url
print label.content
我得到:
415
https://api.flipkart.net/sellers/orders/labels?orderItemId=230005995
文档的 link 是:Documentation 我在互联网上搜索,它说错误是针对不支持的媒体类型。 那我做错了什么?
不要设置 Content-Type
header,您发送的是 GET 请求,该请求没有 body,因此没有设置类型的内容 .
而是设置 Accept
header,如文档中所述。不要为整个 session 设置 header,仅针对此请求:
def fetch_labels(self, orderItemIds):
url = "https://api.flipkart.net/sellers/orders/labels"
headers = {'Accept': 'application/octet-stream'}
payload = {'orderItemId':','.join(orderItemIds)}
return self.session.get(url, params=payload, headers=headers, stream=True)