python请求错误415

2024-05-15 22:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过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

文档的链接是:Documentation 我在互联网上搜索,它说错误是不支持的媒体类型。 我做错什么了?


Tags: selftokenurlgetlabelssessiondefstatus
1条回答
网友
1楼 · 发布于 2024-05-15 22:22:59

不要设置一个Content-Type头,您发送的是一个GET请求,该请求没有正文,因此没有为设置类型的内容。

相反,设置一个Accept头,如文档中所述。不要为整个会话设置该头,仅针对此请求:

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)

相关问题 更多 >