背景
使用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"{}"去掉时,注意去掉字符串中的换行
博客讲述使用curl_cffi requests时出现HTTP/2 stream 0未干净关闭的PROTOCOL_ERROR。原因主要是请求协议http2不支持,作者个人是因请求头里cookie参数加回车带了换行符。解决方法是使用f\{} \去掉字符串中的换行,并给出GitHub参考链接。
2055

被折叠的 条评论
为什么被折叠?



