gpt4 book ai didi

python - 请求在 Accept header 中添加 python 库

转载 作者:太空狗 更新时间:2023-10-30 00:17:43 27 4
gpt4 key购买 nike

所以我已经向带有 pythons 请求库的服务器发出了请求。代码看起来像这样(它使用了一个适配器,所以它需要匹配特定的模式)

def getRequest(self, url, header):
"""
implementation of a get request
"""

conn = requests.get(url, headers=header)
newBody = conn.content
newHeader = conn.headers
newHeader['status'] = conn.status_code

response = {"Headers" : newHeader, "Body" : newBody.decode('utf-8')}

self._huddleErrors.handleResponseError(response)
return response

我解析的头参数是这个

{'Authorization': 'OAuth2 handsOffMyToken', 'Accept': 'application/vnd.huddle.data+json'}

但是我从服务器得到了一个 xml 响应。检查 fiddler 后,我看到发送的请求是:

Accept-Encoding: identity
Accept: */*
Host: api.huddle.dev
Authorization: OAuth2 HandsOffMyToken
Accept: application/vnd.huddle.data+json
Accept-Encoding: gzip, deflate, compress
User-Agent: python-requests/1.2.3 CPython/3.3.2 Windows/2008ServerR2

正如我们所看到的,有 2 个接受 header !请求库在这个 Accept:*/* header 中添加,这会丢弃服务器。有谁知道我该如何阻止它?

最佳答案

正如评论中所述,这似乎是 3.3 中请求库的问题。在请求中有默认 header (可以在 utils 文件夹中找到)。当您不指定自己的 header 时,将使用这些默认 header 。但是,如果您指定自己的 header ,则请求会尝试将 header 合并在一起,以确保您拥有所需的所有 header 。

问题在 sessions.py 中的 def request() 方法中表现出来。它不是合并所有标题,而是将其放入标题中,然后放入您的标题中。现在我刚刚完成了从 util

中找到的默认 header 中删除接受 header 的肮脏技巧

关于python - 请求在 Accept header 中添加 python 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17293199/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com