Python通过VPN请求502 Bad Gateway

时间:2018-02-09 15:16:28

标签: python python-3.x python-requests vpn http-proxy

我正在尝试使用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没问题。

1 个答案:

答案 0 :(得分:0)

具有讽刺意味的问题是,我不需要使用代理来访问此服务器。您可以使用

执行此操作
import requests

s = requests.Session()
s.trust_env = False

url = "http://some.private.server.net"

response = s.get(url)