XmlSlurper.parse(uri) with HTTP basic authentication
12,235
Solution 1
I found this code over here which might help?
Editing this code to your situation, we get:
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}"
}
Solution 2
This will work for you
Please remember to use this instead of the 'def authString' mentioned above:
def authString = "${usr}:${pwd}".getBytes().encodeBase64().toString()
Related videos on Youtube
Author by
mkuzmin
Updated on June 07, 2020Comments
-
mkuzmin almost 4 years
I need to grab a data from XML-RPC web-service.
new XmlSlurper().parse("http://host/service")
works fine, but now I have a particular service that requires basic HTTP authentication.How can I set username and password for
parse()
method, or modify HTTP headers of the request?Using
http://username:password@host/service
doesn't help - I still getjava.io.IOException: Server returned HTTP response code: 401 for URL
exception.Thanks
-
Megha almost 12 yearsI defined my parameters as usr and pwd. Cheers!