urllib2中的错误,但urllib中没有错误(仅限Windows)

时间:2012-03-27 09:47:51

标签: python windows urllib2 urllib

我编写了一个python脚本来更新dyndns.org中的动态IP。 Dyndns需要一份请愿书:

"http://"+dyndns_user+":"+dyndns_pass+"@members.dyndns.org/nic/update?hostname="+dyndns_host+"&myip="+ip

我正在使用urllib来处理请求,它运行正常:

dyndns = "http://"+dyndns_user+":"+dyndns_pass+"@members.dyndns.org/nic/update?hostname="+dyndns_host+"&myip="
dyndns_update = urllib.urlopen(dyndns+newip)
dyndns_msg = dyndns_update.read()

但我读到urllib是自2.6版以来已弃用而支持urllib2,所以我试了一下:

dyndns = "http://"+dyndns_user+":"+dyndns_pass+"@members.dyndns.org/nic/update?hostname="+dyndns_host+"&myip="
dyndns_update = urllib2.urlopen(dyndns+newip)
dyndns_msg = dyndns_update.read()

问题是:如果我在Linux中执行后面的代码工作正常,但在Windows中我获得了URLError异常,因为显然,urllib2.urlopen()试图将dyndns字符串中的“:”解析为url端口(并且失败) )。如果我执行以前的代码(使用urllib),那么脚本在Linux和Windows中都可以正常工作。

有人知道发生了什么吗?我相信这可能是我的错,但是这个脚本适用于Linux但不适用于Windows的事实困扰着我......

0 个答案:

没有答案