Azure 面临的原因:java.net.UnknownHostException:login.microsoftonline.com

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

我正在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 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");
    }