Java应用程序调用IIS中承载的HTTPS WebAPI

时间:2017-01-17 08:22:16

标签: ssl java rest

我正在调用IIS(localhost)中托管的Rest API,如下面的代码所示。

    HttpPost request = new HttpPost("https://localhost/Identity/oauth/"+"token");   
    request.addHeader("content-type", "application/json");
    request.addHeader("Accept", "application/json");

    List<NameValuePair> params = new ArrayList<NameValuePair>(2);
    params.add(new BasicNameValuePair("username", "myuser"));
    params.add(new BasicNameValuePair("password", "mypass"));
    params.add(new BasicNameValuePair("grant_type", "password"));
    request.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));

    HttpResponse result = httpClient.execute(request);

但它给出了以下错误。

  

证书中的主机名不匹配:

在调用HTTPS时我做错了什么? HTTP调用工作正常。

谢谢。

1 个答案:

答案 0 :(得分:0)

您在IIS中使用的是哪种证书?它是自签名的还是从CA获得的?这里的问题是您需要将证书的域映射到您调用的域。

您的证书已注册到localhost。如果您的证书已注册到abc.com,请按以下方式更改您的https呼叫。

HttpPost request = new HttpPost("https://abc. com/Identity/oauth/"+"token");   
    request.addHeader("content-type", "application/json");