Closed gospider007 closed 1 year ago
因为你没有设置http2的伪标题顺序,这个是我之前修改后导致的bug,你设置一下http2的伪标题顺序或者强制使用http1即可解决。tls.pseudo_header_order = [ ":method", ":authority", ":scheme", ":path" ] 或强制使用http1 tls.force_http1 = True
额,我测试了只设置:path 字段也可以解决这个问题,我认为不是顺序的问题,会不会当使用ja3且使用http2协议时必须设置:path,不然,requests 就不会设置:path 导致出现路径错误
是的,但是设置伪标题顺序是为了防止被识别http2指纹
import requests_go
url = "https://tls.peet.ws/api/all"
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
}
tls = requests_go.tls_config.TLSConfig()
tls.pseudo_header_order = [
":path"
]
tls.ja3 = "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,16-18-5-27-0-13-11-43-45-35-51-23-10-65281-17513-21,29-23-24,0"
response = requests_go.get(url=url, headers=headers, tls_config=tls)
print(response.text)
我这里只设置了:path ,其实并不会防止被http2指纹识别,但是它解决了我上述问题,这个bug,应该和伪标题顺序是没有关联的
正常会返回json,这样设置返回的是html