requests Failed to perform, ErrCode: 92, Reason: ‘HTTP/2 stream 0 was not closed cleanly: PROTOCOL_E

背景

使用curl_cffi requests requests 出现如下错误

现象

curl_cffi.CurlError: Failed to perform, ErrCode: 92, Reason: ‘HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)’

原因

其实出现这个原因有很多,具体可以参考下面的GitHub链接。主要原因就是请求的协议http2不支持。

我个人原因是请求头里的cookie参数因为使用"“” 加了回车导致首尾加上了 "\n"因而出错。举个例子

`cookie = '''
Hm_lvt_c6b4954cac8c64d3b19355c7f11f6570=1692772462; _ga=GA1.1.2130937734.1692772462; intercom-device-id-lupk8zyo=6c85ae72-4bee-4f7c-a7b6-d4d26f415721; Hm_lpvt_c6b4954cac8c9355c7f11f6570=1692774049; sessionKey=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; _ga_B2TFDH89NG=GS1.1.1692781333.2.0.1692781333.0.0.0; cf_clearance=l8ZXMKT9DdClQsod_IK9LdAm91iYEGpR5ndLMC6fCm0-1692789762-0-1-296f79d.1e277c7c.5597a87d-0.2.1692789762; intercom-session-lupk8zyo=MURKTXZXTkxSbmkrZFpjWEZzaHJVVGQ5c2lVRG1tbGczbzRGOFRXVjcwMUQ0eUVBcUNYblNUaUwzTDQrUldHSi0tY3Y3UGdYRzIwdWRhc3ZEbmRKSz-200cb40e34d609c001dff5ade2ecfc519041ca40
'''

直接输出print(cookie)是看不出换行符存在但是使用

'Cookie': f'{self.cookie}'

输出请求头式就会发现cookie的数据带了换行符坑坑坑啊!!!
在这里插入图片描述

解决方法

使用f"{}"去掉时,注意去掉字符串中的换行

参考

  • https://github.com/yifeikong/curl_cffi/issues?q=ErrCode%3A+92

你可能感兴趣的:(http,网络协议,网络)