我用这个把头靠在墙上.我一直在尝试每个例子,阅读我可以在网上找到关于urllib2的基本http授权的最后一点,但我无法弄清楚导致我特定错误的原因.
令人沮丧的是,代码适用于一个页面,而不适用于另一个页面.登录www.mysite.com/adm非常顺利.它验证没问题.然而,如果我将地址更改为"http://mysite.com/adm/items.php?n=201105&c=200",我收到此错误:
<h4 align="center" class="teal">Add/Edit Items</h4>
<p><strong>Client:</strong> </p><p><strong>Event:</strong> </p><p class="error">Not enough information to complete this task</p>
<p class="error">This is a fatal error so I am exiting now.</p>
搜索谷歌导致此错误信息为零.
adm是一个框架集页面,我不确定这是否相关.
这是当前的代码:
import urllib2, urllib
import sys
import re
import base64
from urlparse import urlparse
theurl = 'http://xxxxxmedia.com/adm/items.php?n=201105&c=200'
username = 'XXXX'
password = 'XXXX'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl,username,password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
pagehandle = urllib2.urlopen(theurl)
url = 'http://xxxxxxxmedia.com/adm/items.php?n=201105&c=200'
values = {'AvAudioCD': 1,
          'AvAudioCDDiscount': 00, 'AvAudioCDPrice': 50,
          'ProductName': 'python …您好我正在尝试使用python使用urllib2访问API URL:
import urllib2
url = 'https://XXXXXXXXXX.com/'
username = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
password = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
pagehandle = urllib2.urlopen(url)
我不知道这个领域是什么,但我假设我可以使用默认值,即无.
无论如何,我仍然得到401错误:
回溯(最近一次调用最后一次):文件"test5.py",第12行,在pagehandle = urllib2.urlopen(url)文件"/usr/lib/python2.6/urllib2.py",第126行,在urlopen中返回_opener .open(url,data,timeout)文件"/usr/lib/python2.6/urllib2.py",第397行,打开响应= meth(req,response)文件"/usr/lib/python2.6/urllib2 .py",第510行,http_response'http',请求,响应,代码,消息,hdrs)文件"/usr/lib/python2.6/urllib2.py",第435行,错误返回self._call_chain(*args)文件"/usr/lib/python2.6/urllib2.py",第369行,在_call_chain中结果= func(*args)文件"/usr/lib/python2.6/urllib2.py",第518行,在http_error_default引发HTTPError(req.get_full_url(),代码,msg,hdrs,fp)urllib2.HTTPError:HTTP错误401:未经授权
所以看来认证有问题.是否最有可能使用realm = None?
谢谢!