java - 有没有办法将 java.net.http.HttpClient 与 Oauth2 一起使用?
问题描述
您好,我从 Java 11 切换RestTemplate
到HttpClient
。我也想从 Java 11 切换OAuth2RestTemplate
到HttpClient
。
我找不到任何关于使用HttpClient
OAuth2 的材料。有可能以简单的方式吗?
这是个好主意吗?或者我应该WebClient
从春天开始使用?
解决方案
我刚刚发布了使用HttpClient
来获取 OAuthToken,然后我将令牌添加到下一个请求的标头中。
String tokenRequest =
"client_id="
+ lmGatewayCorrectClientId
+ "&client_secret="
+ lmGatewayCorrectClientSecret
+ "&grant_type="
+ lmGatewayCorrectGrantType;
HttpClient oAuth2Client = HttpClient.newBuilder().build();
HttpRequest oAuth2Request =
HttpRequest.newBuilder()
.header(CONTENT_TYPE, APPLICATION_FORM_URLENCODED_VALUE)
.uri(URI.create(lmGatewayCorrectAccessTokenUri))
.POST(HttpRequest.BodyPublishers.ofString(tokenRequest))
.build();
HttpResponse<String> oAuth2Response = null;
try {
oAuth2Response = oAuth2Client.send(oAuth2Request, HttpResponse.BodyHandlers.ofString());
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
推荐阅读
- java - 在收到对等方的 close_notify 之前关闭入站
- python - SQL:SELECT,其中许多列之一包含“x”并且结果不是“NULL”
- javascript - Safari顶部,左侧过渡问题
- sql - 哪个更快:2条插入语句,每条175K记录或1条语句在PostgreSQL中插入350K记录
- arrays - 两个数组,一个有时间,另一个有时间
- angular - 具有可观察添加选择值的 Angular ngFor
- jenkins - Openshift/Jenkins I want to change the version of the Jenkins which is in the persistent template in the browse catalog
- html - 即使从控制器更新后,Textarea ng-model 也会保留最后一个值
- android - 如果 RN 已被杀死,如何执行某些事件?
- django - How can I pass in a parameter to my TestCase in Django?