2011-02-07 19 views
9

Necesito obtener datos del servicio web XML-RPC.XmlSlurper.parse (uri) con autenticación básica HTTP

new XmlSlurper().parse("http://host/service") funciona bien, pero ahora tengo un servicio particular que requiere autenticación HTTP básica.

¿Cómo puedo establecer el nombre de usuario y la contraseña para el método parse(), o modificar los encabezados HTTP de la solicitud?

Usar http://username:[email protected]/service no ayuda - Todavía me sale java.io.IOException: Server returned HTTP response code: 401 for URL excepción.

Gracias

Respuesta

17

me encontraron this code over here lo que podría ayudar?

Edición de este código a su situación, obtenemos:

def addr  = "http://host/service" 
def authString = "username:password".getBytes().encodeBase64().toString() 

def conn = addr.toURL().openConnection() 
conn.setRequestProperty("Authorization", "Basic ${authString}") 
if(conn.responseCode == 200) { 
    def feed = new XmlSlurper().parseText(conn.content.text) 

    // Work with the xml document 

} else { 
    println "Something bad happened." 
    println "${conn.responseCode}: ${conn.responseMessage}" 
} 
2

Esto funcionará para usted

Por favor, recuerde usar esto en vez de la 'def authString' mencionados anteriormente:

def authString = "${usr}:${pwd}".getBytes().encodeBase64().toString() 
+0

Definí mis parámetros como usr y pwd. ¡Aclamaciones! – Megha

Cuestiones relacionadas