Mise à jour: basé sur Lee commentaire j'ai décidé de condenser mon code pour l'une, très simple script et l'exécuter à partir de la ligne de commande:
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)
Malheureusement, il persiste à ne pas générer l' Authorization
- tête (par Wireshark) :(
Je vais avoir un problème d'envoi de l'AUTHENTIFICATION basique sur urllib2. J'ai pris un coup d'oeil à cet article, et a suivi l'exemple. Mon code:
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()
Je vais voir la suite sur le Fil via wireshark:
GET /v1/user HTTP/1.1
Host: api.foursquare.com
Connection: close
Accept-Encoding: gzip
User-Agent: Python-urllib/2.5
Vous pouvez voir l'Autorisation n'est pas envoyé, par rapport à quand j'ai envoyer une demande via curl: curl -u user:password
http://api.foursquare.com/v1/user
Pour une raison quelconque, mon code semble ne pas envoyer l'authentification quelqu'un voit ce que je suis absent?
merci
-simon