相关疑难解决方法(0)

Python urllib2基本身份验证问题

更新:基于Lee的评论我决定将我的代码压缩成一个非常简单的脚本并从命令行运行它:

import urllib2
import sys

username = sys.argv[1]
password = sys.argv[2]
url = sys.argv[3]
print("calling %s with %s:%s\n" % (url, username, password))

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, username, password)
urllib2.install_opener(urllib2.build_opener(urllib2.HTTPBasicAuthHandler(passman)))

req = urllib2.Request(url)
f = urllib2.urlopen(req)
data = f.read()
print(data)
Run Code Online (Sandbox Code Playgroud)

不幸的是它仍然不会生成Authorization标题(每Wireshark):(

我在通过urllib2发送基本AUTH时遇到问题.我看了一下这篇文章,并按照这个例子.我的代码:

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, "api.foursquare.com", username, password)
urllib2.install_opener(urllib2.build_opener(urllib2.HTTPBasicAuthHandler(passman)))

req = urllib2.Request("http://api.foursquare.com/v1/user")    
f = urllib2.urlopen(req)
data = f.read()
Run Code Online (Sandbox Code Playgroud)

我通过wireshark在Wire上看到以下内容:

GET /v1/user HTTP/1.1
Host: api.foursquare.com
Connection: close
Accept-Encoding: gzip
User-Agent: Python-urllib/2.5 
Run Code Online (Sandbox Code Playgroud)

您可以看到未通过curl发送请求时发送授权: curl -u user:password http://api.foursquare.com/v1/user …

python authentication urllib2

81
推荐指数
3
解决办法
12万
查看次数

标签 统计

authentication ×1

python ×1

urllib2 ×1