gpt4 book ai didi

Python 获取 http 预告片

转载 作者:行者123 更新时间:2023-12-04 07:52:13 25 4
gpt4 key购买 nike

如何使用 python 获取 HTTP 尾部响应 header ?我正在使用 requests.get,但无法获取某些 X-Content-Type 或 X-Status。但是,当我将 curl-i 一起使用时,我得到了这些响应。我需要发送特定的 header 或参数吗?我尝试发送 TE: trailers 但它似乎没有做任何事情。

一些示例代码:

import requests

url = "some_api_endpoint"
params = {"param1": "val1"}
headers = {"Accept": "application/json", "TE": "trailers"}

response = requests.get(url, params=params, headers=headers, verify=False)
print("Status: {}".format(response.status_code))
print("Content: {}".format(response.content.decode('utf-8')))
print("Headers: {}".format(response.headers))
print("Reason: {}".format(response.reason))

输出:

Status: 200
Content:
Headers: {'Connection': 'close', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked'}
Reason: OK

curl 命令

curl -k -i <url>?<params> -H 'Accept: application/json'

输出:

TP/1.1 200 OK
Connection: close
Content-Type: application/json
Transfer-Encoding: chunked

X-Status: Some Error

我想从 python 中获取 Some Error 或者甚至是标题 X-Status。基本上从服务器获得了 200 并且在流式传输一些响应时,它在中间遇到错误,导致错误。不幸的是,我无法在 python 中轻松获取此消息。

最佳答案

来自 https://www.python.org/dev/peps/pep-0444/#request-trailers-and-chunked-transfer-encoding

Request Trailers and Chunked Transfer Encoding

When using chunked transfer encoding on request content, the RFCs allow there to be request trailers. These are like request headers but come after the final null data chunk. These trailers are only available when the chunked data stream is finite length and when it has all been read in. Neither WSGI nor Web3 currently supports them.

关于requests 库,没有比这更好的了:

如前所述,Trailers 是一种很少使用的 HTTP 功能。

实现起来非常复杂(因为您必须确保不在此处解析任何会改变正文大小的 header ,例如 Content-Length 和 Transfer-encoding)。

所以现在很少有实现尾部的解析器,而且很少出现在 HTTP 消息中(但你有一个,为你感到难过:-))。

关于Python 获取 http 预告片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66898119/

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