Azure 面临的原因:java.net.UnknownHostException:login.microsoftonline.com
我正在springboot应用程序中使用restTemplate调用microsoft Azureurl 网址:-https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token RestTemplate RestTemplate=新RestTemplate()Azure 面临的原因:java.net.UnknownHostException:login.microsoftonline.com,azure,azure-active-directory,Azure,Azure Active Directory,我正在springboot应用程序中使用restTemplate调用microsoft Azureurl 网址:-https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token RestTemplate RestTemplate=新RestTemplate() HttpHeaders=newhttpheaders(); headers.setContentType(MediaType.APPLICATION\u FORM\u UR
HttpHeaders=newhttpheaders();
headers.setContentType(MediaType.APPLICATION\u FORM\u URLENCODED);
MultiValueMap=新链接的MultiValueMap();
添加(“授权类型”、“客户凭证”);
地图添加(“客户id”,“xxxxxxxxxxxxxxxxxxxxxxxxxx”);
添加“客户秘密”、“XXXXXXXXXXXXXXXX”);
map.add(“范围”https://graph.microsoft.com/.default");
HttpEntity=新的HttpEntity(映射、标题);
反应性反应=
restTemplate.exchange(“https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c\n/oauth2/v2.0/token“,
HttpMethod.POST,
实体,
字符串(类);
if(response.getStatusCode()==HttpStatus.OK){
System.out.println(“请求成功”);
}否则{
System.out.println(“请求失败”);
}
在运行上面的示例调用以连接Azure时,我们得到的异常是:由以下原因引起:java.net.UnknownHostException:login.microsoftonline.com
后来尝试在家里,那里没有代理连接到互联网,然后我能够成功地获得输出没有这个“未知hostexception”错误。
因此,如何解决这个问题。您的url似乎不是规范
https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c\n/oauth2/v2.0/token
,尝试将其更改为:https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c/oauth2/v2.0/token
。删除\n
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
map.add("grant_type","client_credentials");
map.add("client_id","xxxxxxxxxxxxxxxxxxxxxxxxxx");
map.add("client_secret","xxxxxxxxxxxxxxxxxx");
map.add("scope","https://graph.microsoft.com/.default");
HttpEntity<MultiValueMap<String, String>> entity = new HttpEntity<>(map, headers);
ResponseEntity<String> response =
restTemplate.exchange("https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c\n/oauth2/v2.0/token",
HttpMethod.POST,
entity,
String.class);
if (response.getStatusCode() == HttpStatus.OK) {
System.out.println("Request Successful");
} else {
System.out.println("Request Failed");
}