Robię żądanie przy użyciu urllib2
i HTTPBasicAuthHandler
tak:Jak debugować urllib2 wniosek, który używa podstawowej obsługi uwierzytelniania
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()
Jestem obecnie dostaniem httplib.BadStatusLine
wyjątek podczas wykonywania tego kodu. Jak mogę przejść do debugowania? Czy istnieje sposób sprawdzenia, jaka jest nieprzetworzona odpowiedź, niezależnie od nierozpoznanego kodu statusu HTTP?
widziałem wzmiankę gdzieś parametru 'debuglevel' dla' HTTPHandler', ale strona mi komunikować się z potrzeby uwierzytelniania podstawowego, jak i ile wiem 'HTTPBasicAuthHandler' nie posiada debug opcja. Czy mogę coś jeszcze zrobić? Udało mi się znaleźć przyczynę mojego problemu (nieprawidłowe parametry). – Acorn
przypomnieć, że parametry do [urllib2.build_opener()] (http://docs.python.org/library/urllib2.html#urllib2.build_opener) to lista łańcuchów. Możesz oznaczyć swój program do debugowania http na swoim module obsługi auth ... Zobacz przykład. –
Z 'urllib2.build_opener (authhandler, urllib2.HTTPHandler (debuglevel = 1))' Otrzymuję wynik debugowania, ale program obsługi auth nie działa i dostaję '401 nieautoryzowane'. Próbowałem z kolejnością przełączników również (nie jestem pewien, czy to by miało jakąkolwiek różnicę) i zachowanie było takie samo. – Acorn