+ -
当前位置:首页 → 问答吧 → 关于python urllib2的问题

关于python urllib2的问题

时间:2011-09-27

来源:互联网

废话不说,上代码

import urllib2
url = r"http://localhost:8080/manager/reload?path=/Chablis"
username = "username"
password = "password"
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None,url,username,password)
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)

req = urllib2.Request(url)
print req
fd = urllib2.urlopen(req)
print fd

while True:  
  data = fd.read(1024)  
  if not len(data):  
  break  
  print data


---------------------------懂的人一看就知道这个脚本是干嘛用的----------------------------
Windows下运行这个脚本是OK的
但我把脚本放在linux上,报错:

Traceback (most recent call last):
  File "tomcatReload.py", line 13, in ?
  fd = urllib2.urlopen(req)
  File "/usr/lib/python2.3/urllib2.py", line 129, in urlopen
  return _opener.open(url, data)
  File "/usr/lib/python2.3/urllib2.py", line 326, in open
  '_open', req)
  File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
  result = func(*args)
  File "/usr/lib/python2.3/urllib2.py", line 901, in http_open
  return self.do_open(httplib.HTTP, req)
  File "/usr/lib/python2.3/urllib2.py", line 895, in do_open
  return self.parent.error('http', req, fp, code, msg, hdrs)
  File "/usr/lib/python2.3/urllib2.py", line 352, in error
  return self._call_chain(*args)
  File "/usr/lib/python2.3/urllib2.py", line 306, in _call_chain
  result = func(*args)
  File "/usr/lib/python2.3/urllib2.py", line 412, in http_error_default
  raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized

很明显:是鉴权错误!(PS:用户名,密码并没有错,url,端口也都是正常的。我在linux上的tomcat/conf/user_tomcat.xml也进行注册过)
我总结下来,可能会有2个问题:
1,python版本问题,windows上是python2.5 linux 上是python2.3
2, 编码问题

我更加倾向于后者。有木有懂的大神,求解决办法


作者: cyl713   发布时间: 2011-09-27

和编码有啥关系?你的用户名和密码用的是中文?
Python版本的可能性更大。你升级下吧。没人愿意浪费时间在一个已经被废弃了这么多年的python版本上。

作者: iambic   发布时间: 2011-09-27

用户名和密码不是中午!
关键服务器有几千台,都升级的话。亚历山大

作者: cyl713   发布时间: 2011-09-27

用户名和密码不是中文。但是报鉴权错误。
顺便说一下,第一个print 是可以打印出来的,说明可以request并且已经提交! 只是无法获得页面返回的结果
这也是我认为可能编码问题存在的可能更大一点的原因

作者: cyl713   发布时间: 2011-09-27

你先升级一台,确认是不是版本的问题。如果你因畏惧而拒绝尝试的话,会离真相越来越远。

作者: iambic   发布时间: 2011-09-27

热门下载

更多