urllib2基本认证奇数

Zac*_*ack 8 python webforms urllib urllib2

我用这个把头靠在墙上.我一直在尝试每个例子,阅读我可以在网上找到关于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>
Run Code Online (Sandbox Code Playgroud)

搜索谷歌导致此错误信息为零.

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 test', 'frmSubmit': 'Submit' }

#opener2 = urllib2.build_opener(urllib2.HTTPCookieProcessor())
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
Run Code Online (Sandbox Code Playgroud)

这只是我尝试过的众多版本之一.我已经关注了Urllib2 Missing Manual中的每个示例,但仍然收到相同的错误.

谁能指出我做错了什么?

Lak*_*sad 2

大约一年前,我经历了相同的过程并记录了我如何解决问题 - 直接而简单的身份验证方法和标准方法。选择您认为合适的。

Python 中的 HTTP 身份验证

在缺少的 urllib2 文档中有一个解释的描述。