当我向htt(p|ps)
网站提出请求时,在代理服务器的第二个参数中使用https
的正确方法是什么?我在下面使用的代理只是一个占位符。
当我这样尝试时(有效):
proxies = {
'https': 'http://79.170.192.143:34394',
}
当我这样尝试时(它也可以工作):
proxies = {
'https': 'https://79.170.192.143:34394',
}
代理中的第二个htt(p|ps)
只是一个占位符,如果我向http
网站发出请求该怎么办?
答案 0 :(得分:4)
在这种情况下,两个设置均有效。就个人而言,我宁愿使用适当的协议,因为它不是模棱两可的,但是两个设置都会导致相同的连接。即使未设置协议,
proxies = {'https': '79.170.192.143:34394'}
所有HTTPS请求都将使用此代理。
对于HTTP和HTTPS代理,不需要包括协议(可以由请求URL方案确定)。但是对于SOCKS代理,我们必须使用正确的协议,例如:
proxies = {'https': 'socks5://79.170.192.143:34394'}
否则连接将失败。
代理字典中的'https'键指定到目标主机的连接协议。如果有“ https”键,则所有HTTPS连接都将使用代理。除非代理中有“ http”键,否则将不会代理HTTP请求。
代理URL字符串中的'https'指定与代理服务器进行通信的协议。通常,使用正确的协议(即https://79.170.192.143:34394
)很重要,但是在这种情况下没有区别。创建HTTPS连接(source code)时仅使用代理主机和端口,并且协议被忽略。
尽管此特定配置有效,但最好使用正确的协议。例如,以下代理设置将无法建立连接。
proxies = {'http': 'https://79.170.192.143:34394'}
proxies = {'https': 'socks5://79.170.192.143:34394'}
proxies = {'https': 'invalid-scheme://79.170.192.143:34394'}