RestTemplate正常请求一直报401,
之前写法
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(paramsMap,headers);
JSONObject response = template.postForEntity(url1.toString(), paramsMap, JSONObject.class);
后来查询各种,
查到该博文
Spring Security Oauth2 认证(获取token/刷新token)流程(password模式)
https://blog.csdn.net/bluuusea/article/details/80284458
加下面的评论才解决问题
改成如下代码
JSONObject response = template.postForObject(url1.toString(), paramsMap, JSONObject.class);
将参数直接传递
整体代码如下
String url = "ip+端口号/oauth/token";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setContentType(MediaType.APPLICATION_JSON);
MultiValueMap<String, String> paramsMap = new LinkedMultiValueMap<>();
paramsMap.set("username",client_username);
paramsMap.set("password",client_password);
paramsMap.set("grant_type",grant_type);
paramsMap.set("client_id",client_id);
paramsMap.set("client_secret",client_secret);
// HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(paramsMap,headers);
JSONObject response = template.postForObject(url, paramsMap, JSONObject.class);
具体请求oauth2获取token,请自行查询
另外如果出现超时问题 请检查是否是ipv6访问,
idea 启动用ipv4配置如下