对于以下代码
theurl = "https://%s:%s@members.dyndns.org/nic/update?hostname=%s&myip=%s&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG" % (username, password, hostname, theip)
conn = urlopen(theurl) # send the request to the url
print(conn.read()) # read the response
conn.close() # close the connection
我得到以下错误
File "c:\Python31\lib\http\client.py", line 667, in _set_hostport
raise InvalidURL("nonnumeric port: '%s'" % host[i+1:])
有什么想法吗???
您可能需要对密码进行url编码。如果密码碰巧包含“/”,您将看到类似的错误。
下面是一个本地示例(实际值已编辑):
编码密码:
您可以使用
urllib.quote('somepass/a', safe='')
进行编码。错误消息显示您正在准备的url有问题。打印并检查这是否是有效的url。
我同意你的观点,这就是问题所在。 您可能已经习惯了在浏览器中使用它,这将导致浏览器与主机进行身份验证。你应该在第一个标志前放下所有东西。
看看urllib docs,特别是FancyURLOpener,它可以解决您的身份验证问题。
相关问题 更多 >
编程相关推荐