使用httplib2处理身份验证和代理服务器

2024-10-06 07:11:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图测试与Nexus服务器的交互,该服务器需要对我打算使用的操作进行身份验证,但我还需要处理一个内部代理服务器。在

基于我(有限)的理解,我可以向开场白添加多个处理程序。但是我还是收到401的回复。我已经检查了用户名和密码是否有效。我不确定是否需要cookies来做这件事,如果是的话,它们是如何被包括在内的。 有什么建议吗?在

baseUrl = 'server:8070/nexus-webapp-1.3.3/service/local'

params = {"[key]":"[value]"}

data = urllib.urlencode(params)

# create a password manager
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

# Add the username and password as supplied
password_mgr.add_password(None, baseUrl, username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)
proxy_support = urllib2.ProxyHandler({})

# create "opener" (OpenerDirector instance)
opener = urllib2.build_opener(proxy_support, handler)
urllib2.install_opener(opener)

txheaders =  {'User-agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}

req = Request(protocol+url, data, txheaders)
handle = urlopen(req)

这是生成的URLError的headers字段:

^{pr2}$

更新 Nexus似乎实现了Restlet's AuthenticationHelper的自定义版本。多亏了亚历克斯,我才知道该找什么。在


Tags: 服务器nexussupportdatacreateusernamepasswordparams
1条回答
网友
1楼 · 发布于 2024-10-06 07:11:50

你能把你收到的401回复的全部标题都显示出来吗?也许这不是一个基本的身份验证请求,也许是代理想要自己的身份验证,很难猜不到上面说的头!在

编辑:感谢您显示标题(我将其重新格式化为“代码”,否则无法阅读)。在

正如我所怀疑的,它不想要“基本的”,它想要一些其他的(Nexus专有的…?)NxBASIC“身份验证协议我从来没听说过(我对Nexus一无所知),我想你所使用的基本身份验证处理程序也没有(即使NxBASIC不知何故接受了普通的基本身份验证,处理程序只知道它是不同的协议,不会提供这种身份验证)。在

所以,首先你需要研究NxBASIC到底是什么东西,为此,我想用正确的标签回答一个So问题可能会有所帮助。然后,根据您所学的知识,有一个有趣的问题就是为它定义一个处理程序。。。!-(二)

相关问题 更多 >