निम्नलिखित कोड उपयोगकर्ता को प्रमाणित नहीं करता है (कोई प्रमाणीकरण विफलता होता है, लेकिन कॉल अनुमतियों की कमी के कारण विफल रहता है):HTTPBilder मूल लेख क्यों काम नहीं कर रहा है?
def remote = new HTTPBuilder("http://example.com")
remote.auth.basic('username', 'password')
remote.request(POST) { req ->
uri.path = "/do-something"
uri.query = ['with': "data"]
response.success = { resp, json ->
json ?: [:]
}
}
लेकिन निम्नलिखित ठीक काम करता है:
def remote = new HTTPBuilder("http://example.com")
remote.request(POST) { req ->
uri.path = "/do-something"
uri.query = ['with': "data"]
headers.'Authorization' =
"Basic ${"username:password".bytes.encodeBase64().toString()}"
response.success = { resp, json ->
json ?: [:]
}
}
क्यों प्रतिसाद नहीं पहले काम नहीं कर रहे हैं?
यह कैसे असफल रहा है? बुनियादी प्रमाणीकरण को ट्रिगर करने के लिए सर्वर को HTTP 401 स्थिति कोड वापस करना चाहिए। एचटीपीबिल्डर फिर प्राधिकरण शीर्षलेख के साथ दूसरा अनुरोध भेज देगा। – ataylor
यह अभी काम नहीं करता है। अनुरोध स्वयं एक संदेश के साथ लौटाता है कि उपयोगकर्ता को ऑपरेशन करने की अनुमति नहीं है। मैं उपयोगकर्ता नाम और पासवर्ड को पूरी तरह से अमान्य में बदल सकता हूं और वही होता है। –
यह संभावित रूप से आपकी समस्या को हल करना चाहिए http://stackoverflow.com/questions/6588256/using-groovy-http-builder-in-preemptive-mode –