estoy haciendo una solicitud utilizando urllib2
y la HTTPBasicAuthHandler
así:cómo depurar solicitud urllib2 que utiliza un controlador de autenticación básica
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()
Actualmente estoy recibiendo una excepción httplib.BadStatusLine
cuando se ejecuta este código. ¿Cómo podría llevar a cabo la depuración? ¿Hay alguna manera de ver cuál es la respuesta sin procesar independientemente del código de estado HTTP no reconocido?
vi una mención alguna parte del parámetro '' debuglevel' para HTTPHandler', pero el sitio que estoy comunicando con necesidades de autenticación básica, y por lo que yo sé 'HTTPBasicAuthHandler' no tiene una depuración opción. ¿Hay algo mas que pueda hacer? He logrado encontrar la causa de mi problema (parámetros mal formados). – Acorn
recuerde que los parámetros para [urllib2.build_opener()] (http://docs.python.org/library/urllib2.html#urllib2.build_opener) es una lista de cadenas. Puede etiquetar su controlador http de depuración en su controlador de autenticación ... Ver ejemplo. –
Con 'urllib2.build_opener (authhandler, urllib2.HTTPHandler (debuglevel = 1))' Obtengo salida de depuración, pero el controlador de autenticación no funciona y obtengo un '401 no autorizado'. He intentado con el orden de los manejadores cambiar también (no estoy seguro de si eso haría alguna diferencia) y el comportamiento fue el mismo. – Acorn