Ssl Java应用程序调用IIS中托管的HTTPS WebAPI
我正在调用托管在IIS(localhost)中的RESTAPI,如下代码所示Ssl Java应用程序调用IIS中托管的HTTPS WebAPI,ssl,java,rest,Ssl,Java,Rest,我正在调用托管在IIS(localhost)中的RESTAPI,如下代码所示 HttpPost request = new HttpPost("https://localhost/Identity/oauth/"+"token"); request.addHeader("content-type", "application/json"); request.addHeader("Accept", "application/json"); List<N
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);
HttpPost请求=新的HttpPost(“https://localhost/Identity/oauth/“+”代币“);
addHeader(“内容类型”、“应用程序/json”);
addHeader(“接受”、“应用程序/json”);
列表参数=新的ArrayList(2);
添加(新的BasicNameValuePair(“用户名”、“我的用户”);
添加(新的BasicNameValuePair(“密码”、“我的通行证”);
参数添加(新的BasicNameValuePair(“授权类型”、“密码”);
setEntity(新的UrlEncodedFormEntity(参数“UTF-8”);
HttpResponse result=httpClient.execute(请求);
但它给出了以下错误
证书中的主机名不匹配:
我打电话给HTTPS时做错了什么?不过HTTP调用工作正常
谢谢。您在IIS中使用的是什么类型的证书?它是自签名的还是从CA获得的?这里的问题是您需要将证书的域映射到您调用的域 您的证书已注册到本地主机。如果您的证书已注册到abc.com,请按如下方式更改您的https呼叫
HttpPost request = new HttpPost("https://abc. com/Identity/oauth/"+"token");
request.addHeader("content-type", "application/json");
您在IIS中使用的是什么类型的证书?它是自签名的还是从CA获得的?这里的问题是您需要将证书的域映射到您调用的域 您的证书已注册到本地主机。如果您的证书已注册到abc.com,请按如下方式更改您的https呼叫
HttpPost request = new HttpPost("https://abc. com/Identity/oauth/"+"token");
request.addHeader("content-type", "application/json");
您是否尝试连接到证书中提到的实际域,而不是连接到
localhost
?该帖子是否回答了您的问题?您是否尝试连接到证书中提到的实际域,而不是连接到localhost
?该帖子是否回答了您的问题?