【发布时间】:2010-11-18 19:39:22
【问题描述】:
我正在尝试读取我们公司网络中的 URL。特别是我正在联系的服务器在一个办公室,而客户端 PC 在另一个办公室:
print(urlopen(r"http://london.mycompany/mydir/").read())
每当我运行这个函数时,我都会得到:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Python24\lib\urllib2.py", line 130, in urlopen
return _opener.open(url, data)
File "C:\Python24\lib\urllib2.py", line 364, in open
response = meth(req, response)
File "C:\Python24\lib\urllib2.py", line 471, in http_response
response = self.parent.error(
File "C:\Python24\lib\urllib2.py", line 402, in error
return self._call_chain(*args)
File "C:\Python24\lib\urllib2.py", line 337, in _call_chain
result = func(*args)
File "C:\Python24\lib\urllib2.py", line 480, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 407: Proxy Authentication Required
奇怪的是这两台计算机之间没有防火墙 - 由于某种原因,url 决定通过代理连接到网络服务器,我们通常使用该代理连接到公司外部的内容,在这种情况下那是失败的,因为我没有对其进行身份验证。
我很确定故障发生在客户端 PC 中:我对服务器进行了 nslookup 和 ping,以确认两台计算机之间存在连接,但是当我使用 Windows 的 TCPView 观看事务时,我可以看到 python.exe 进程正在连接到一个完全不同的服务器(是的,代理!)。
那么可能是什么原因造成的呢?请注意,未设置 os.environ["http_proxy"] 变量 - 此变量通常用于使 urllib 通过代理服务器连接。这不是这里的情况。有没有其他可能具有相同效果的东西?
仅供参考,在非常封闭的公司环境中在 Windows XP 32 位上运行 Python 2.4.4。
【问题讨论】:
-
你试过连接IP吗?那会发生什么?如果 IP 有效,则您的域查找有问题。
标签: python http networking