我使用的是https://github.com/abhinavsingh/proxy.py,使用基本身份验证对其进行设置,如下所示:
proxy --basic-auth "user:pass"
当我将它与curl一起使用时,它需要代理身份验证:
curl -I -x localhost:8899 http://example.com => 407
curl -I -x user:pass@localhost:8899 http://example.com => 200
但是当我在Python中使用它时,我可以在不提供任何身份验证的情况下访问它:
import requests
proxies = {
"http": "http://127.0.0.1:8899",
"https": "http://127.0.0.1:8899"
}
response = requests.get("https://www.example.com", proxies=proxies)
print(response.status_code)
我得了200分。我错过了什么吗?
1条答案
按热度按时间r6hnlfcb1#
这看起来像是
proxy.py
中的一个bug。它似乎是由requests
发出一个没有请求头的HTTP/1.0
请求触发的。您可以自己触发同样的问题:与
requests
不同,curl
总是发送请求头,即使在使用--proxy1.0
时也是如此,因此不可能触发相同的行为。