Sto facendo una richiesta utilizzando urllib2
e HTTPBasicAuthHandler
in questo modo:Come eseguire il debug richiesta urllib2 che utilizza un gestore di autenticazione di base
import urllib2
theurl = 'http://someurl.com'
username = 'username'
password = 'password'
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, theurl, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)
params = "foo=bar"
response = urllib2.urlopen('http://someurl.com/somescript.cgi', params)
print response.info()
Attualmente sto ottenendo un'eccezione httplib.BadStatusLine
durante l'esecuzione di questo codice. Come posso fare il debugging? C'è un modo per vedere quale sia la risposta non elaborata indipendentemente dal codice di stato HTTP non riconosciuto?
ho visto una menzione in qualche luogo del parametro '' debuglevel' per HTTPHandler', ma il sito che sto comunicando con le esigenze di autenticazione di base, e per quanto ne so 'HTTPBasicAuthHandler' non ha un debug opzione. C'è qualcos'altro che posso fare? Sono riuscito a trovare la causa del mio problema (parametri errati). – Acorn
ricorda che i parametri di [urllib2.build_opener()] (http://docs.python.org/library/urllib2.html#urllib2.build_opener) sono un elenco di catene. Puoi taggare il tuo gestore HTTP di debug sul tuo gestore di autenticazione ... Vedi esempio. –
Con 'urllib2.build_opener (authhandler, urllib2.HTTPHandler (debuglevel = 1))' Ricevo l'output di debug, ma il gestore di autenticazione non funziona e ottengo un '401 non autorizzato '. Ho provato anche con l'ordine degli handler (non sono sicuro che ciò avrebbe fatto la differenza) e il comportamento era lo stesso. – Acorn