RestTemplate结合OkHttp3通用Rest Client客户端
文章目录
一、OkHttp3 Authenticator认证器(仅支持http响应码401和407)
原理
okhttp3.internal.http.RetryAndFollowUpInterceptor重试拦截器中,判断http响应码若为{@code 401},则在request请求头附带Basic认证信息重新发送请求。
package com.example.request.okhttp3;
import okhttp3.*;
import javax.annotation.Nullable;
import java.io.IOException;
/**
* <p> 功能描述: Basic 基本认证
* 注意:http响应码为{@code 401} 时生效,若目标系统自动重定向到登录页面{@code 302}则无法拦截!
* </p>
*
*/
public class BasicAuthenticator implements Authenticator {
private String username;
private String password;
public BasicAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
/**
* @see okhttp3.internal.http.RetryAndFollowUpInterceptor
*
* @param route
* @param response
* @return
* @throws IOException
*/
@Nullable
@Override
public Request authenticate(@Nullable Route route, Response response) throws IOException {
String credential = Credentials.basic(this.username, this.password);
return response.request().newBuilder().header("Authorization", credential).build();
}
}
final OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
.connectionPool(pool())
.connectTimeout

本文介绍了如何使用OkHttp3Authenticator进行Basic认证,并探讨了如何将OkHttp3与RestTemplate集成,包括自定义认证、拦截器和Spring RetryTemplate的重试策略。同时涵盖了如何在Spring Boot中配置和使用这些技术。
最低0.47元/天 解锁文章
1730

被折叠的 条评论
为什么被折叠?



