我正在尝试使用requests
库从公司网络内的服务器获取一些数据。我正在使用VPN进入我公司的网络,还有一个公司代理设置。我试图访问的地址只能在该公司网络中看到。
import requests
url = "http://some.private.server.net"
r = requests.get(url)
我在我的环境中设置了HTTP_PROXY和HTTPS_PROXY。我正在运行Windows 7。
我从此代码中收到错误502。它在我与公司网络物理连接时起作用,因此我认为问题在于通过VPN而不是代理连接。我可以使用我的网络浏览器访问该地址。
我对网络知之甚少,但我尝试将请求的源地址更改为VPN网络适配器使用的IP地址。
import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter
s = requests.Session()
ip = "y.y.y.y"
s.mount('http://', SourceAddressAdapter(ip))
s.mount('https://', SourceAddressAdapter(ip))
url = "http://some.private.server.net"
response = s.get(url)
这仍然导致与上面相同的错误(502)。
编辑:仔细查看502错误,代理服务器返回“您正在寻找的页面的主机名不存在”的消息。
因此,我尝试用我想要覆盖的服务器的IP地址替换URL,而是因为“网关超时”而获得502.
我可以从命令行ping这个IP没问题。
答案 0 :(得分:0)
具有讽刺意味的问题是,我不需要使用代理来访问此服务器。您可以使用
执行此操作import requests
s = requests.Session()
s.trust_env = False
url = "http://some.private.server.net"
response = s.get(url)