При использовании groovy http-builder с базовой аутентификацией поведение по умолчанию заключается в том, чтобы сначала отправить неавторизованный запрос и повторно отправить запрос с учетными данными после получения 401 в первую очередь. Apache Httpclient предлагает превентивную аутентификацию для отправки учетных данных непосредственно по первому запросу. Как я могу использовать preemptive auth в groovy http-builder? Любые примеры кода оценены.
С помощью groovy http-builder в превентивном режиме
Ответ 1
На основе 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
Ответ 2
Вы также можете решить стиль groovy с помощью
http = new RESTClient('http://awesomeUrl/')
http.headers['Authorization'] = 'Basic '+"myUsername:myPassword".getBytes('iso-8859-1').encodeBase64()