2011-02-07 20 views
9

के साथ XmlSlurper.parse (uri) मुझे XML-RPC वेब-सेवा से डेटा प्राप्त करने की आवश्यकता है।HTTP मूल प्रमाणीकरण

new XmlSlurper().parse("http://host/service") ठीक काम करता है, लेकिन अब मेरे पास एक विशेष सेवा है जिसके लिए मूल HTTP प्रमाणीकरण की आवश्यकता है।

मैं parse() विधि के लिए उपयोगकर्ता नाम और पासवर्ड कैसे सेट कर सकता हूं, या अनुरोध के HTTP शीर्षलेख संशोधित कर सकता हूं?

http://username:[email protected]/service का उपयोग करने में मदद नहीं करता है - मुझे अभी भी java.io.IOException: Server returned HTTP response code: 401 for URL अपवाद मिलता है।

धन्यवाद

उत्तर

17

मैं this code over here जो मदद कर सकता है पाया?

अपनी स्थिति के लिए इस कोड को संपादित करना, हम पाते हैं:

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

यह काम करेंगे आप

कृपया के बजाय 'डीईएफ़ authString' जैसा कि ऊपर उल्लेख इस का उपयोग करने के लिए याद करने के लिए:

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

मैंने अपने पैरामीटर को usr और pwd के रूप में परिभाषित किया है। चीयर्स! – Megha

संबंधित मुद्दे