首页 > 解决方案 > 面对原因:java.net.UnknownHostException:login.microsoftonline.com

问题描述

我在springboot应用程序Url中用restTemplate调用微软Azureurl:-https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token

RestTemplate restTemplate = new RestTemplate();

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

在运行上面的示例调用以连接 Azure 时,我们得到了以下异常: Caused by: java.net.UnknownHostException: login.microsoftonline.com

后来在家里尝试,没有代理连接到互联网,然后能够成功获得输出而没有这个“UnknownHostException”错误。那么如何解决这个问题。

标签: azureazure-active-directory

解决方案


您的网址似乎不是规范https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c\n/oauth2/v2.0/token,请尝试将其更改为:https://login.microsoftonline.com/xxxxxxxxxx-xxxxxx-c666dbeda42c/oauth2/v2.0/token。删除\n.


推荐阅读