当使用具有基本身份验证的groovy的http-builder时,默认行为是首先发送未经身份验证的请求,并在首先收到401之后使用凭据重新发送请求。 Apache的Httpclient提供preemptive authentication直接在第一个请求上发送凭据。 如何在Groovy的http-builder中使用preemptive auth?任何代码示例都表示赞赏。
答案 0 :(得分:33)
基于JIRA issue你可以做类似的事情:
def http = new RESTClient('http://awesomeUrl/')
http.client.addRequestInterceptor(new HttpRequestInterceptor() {
void process(HttpRequest httpRequest, HttpContext httpContext) {
httpRequest.addHeader('Authorization', 'Basic ' + 'myUsername:myPassword'.bytes.encodeBase64().toString())
}
})
def response = http.get(path: "aResource")
println response.data.text
答案 1 :(得分:30)
您还可以使用
解决它的时髦风格http = new RESTClient('http://awesomeUrl/')
http.headers['Authorization'] = 'Basic '+"myUsername:myPassword".getBytes('iso-8859-1').encodeBase64()