0

下面的代码:

import urllib2
file = urllib2.urlopen("http://foo.bar.com:82")

在我的 Mac 上工作得很好(运行 Python 2.7.1 的 OS X 10.8.4。它会打开 URL,我可以毫无问题地解析文件。

当我在 GoDaddy Python 2.7.3(或 2.4)中尝试完全相同的代码(这两行)时,我收到一个错误:

urllib2.URLError: <urlopen error (111, 'Connection refused')

问题与端口 :82 有关,该端口是地址的重要组成部分。我曾尝试使用带有掩码等的转发地址,但没有任何效果。

知道为什么它会在一个环境中工作而不是在另一个(表面上相似的)环境中工作吗?任何想法如何解决这个问题?我也试过机械化无济于事。以前的帖子建议关注 urllib2.HTTPBasicAuthHandler,但它在我的 OS X 环境中运行良好,没有任何特别之处。

欢迎提出想法。

4

2 回答 2

0

快速浏览一下 GoDaddy 支持论坛,他们似乎只支持向其共享主机上的端口 80 (HTTP) 和 443 (HTTPS) 发送请求。参见例如

http://support.godaddy.com/groups/web-hosting/forum/topic/curl-to-ports-other-than-80/

于 2013-07-24T22:43:25.223 回答
0

Connection refused表示您的操作系统尝试联系远程主机,但收到“关闭端口”消息。

这很可能是因为 GoDaddy 和foo.bar.com. 最有可能的foo.bar.com是,只能从您的计算机或本地网络访问,但也可能是 GoDaddy 阻止访问奇怪的端口。

于 2013-07-24T20:50:43.603 回答