Python获取http拖车
如何使用python获取HTTP尾部响应头?我正在使用Python获取http拖车,python,http,python-requests,http-headers,Python,Http,Python Requests,Http Headers,如何使用python获取HTTP尾部响应头?我正在使用请求。获取,无法获取某些X-Content-Type或X-Status。但是,当我将curl与-I一起使用时,我会得到这些响应。我是否需要发送特定的标题或参数?我试着发送了TE:trailes,但似乎没有任何效果 一些示例代码: import requests url = "some_api_endpoint" params = {"param1": "val1"} headers
请求。获取
,无法获取某些X-Content-Type或X-Status。但是,当我将curl
与-I
一起使用时,我会得到这些响应。我是否需要发送特定的标题或参数?我试着发送了TE:trailes
,但似乎没有任何效果
一些示例代码:
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
TP/1.1 200 OK
Connection: close
Content-Type: application/json
Transfer-Encoding: chunked
X-Status: Some Error
curl命令
curl -k -i <url>?<params> -H 'Accept: application/json'
我想从python中获取上面的Some Error
,甚至是标题X-Status
。基本上从服务器获得了200,而流的一些响应,它在中间命中错误,造成错误。不幸的是,我无法用python轻松获得此消息。来自
请求跟踪和分块传输编码
当对请求内容使用分块传输编码时,RFC允许存在请求拖车。它们类似于请求头,但位于最后一个空数据块之后。这些预告片仅在分块数据流长度有限且已全部读入时可用WSGI和Web3目前都不支持它们。
关于请求库,没有比这更好的了:
因此,现在很少有解析器实现预告片,HTTP消息中出现的事件也很少(但您有一个,为您感到抱歉:-)。您想知道如何访问发送的头,还是在响应中缺少头?很抱歉,不清楚。我想以某种方式从回复中提取它们。在
响应.headers中找不到它们。假设response
是请求。get()对象,则它们丢失,服务器未发送它们。为什么不能用您提供的信息来说明呢?但是如上所述,使用curl执行相同的url和参数,以及-i
标志将获得我想要的信息。所以我很困惑为什么我不能从python的请求中得到它。curl发送的不同之处是什么?您必须提供一些允许我们调试问题的细节:代码、请求、响应数据、curl命令和输出。。。