我正在调用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调用工作正常。
谢谢。
答案 0 :(得分:0)
您在IIS中使用的是哪种证书?它是自签名的还是从CA获得的?这里的问题是您需要将证书的域映射到您调用的域。
您的证书已注册到localhost。如果您的证书已注册到abc.com,请按以下方式更改您的https呼叫。
HttpPost request = new HttpPost("https://abc. com/Identity/oauth/"+"token");
request.addHeader("content-type", "application/json");