2017-01-17 12 views
1

次のコードのように、IIS(localhost)でホストされているRest APIを呼び出しています。IISでホストされているHTTPS WebAPIへのJavaアプリケーション呼び出し

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

'localhost'に接続する代わりに、証明書に記載されている実際のドメインに接続しようとしましたか? –

+0

その投稿はあなたの質問に答えませんか? http://stackoverflow.com/questions/1666052/java-https-client-certificate-authentication – niilzon

答えて

0

IISでどのような種類の証明書を使用していますか?それは自己署名されているか、CAから取得していますか?ここでの問題は、証明書のドメインを呼び出すドメインにマップする必要があることです。

証明書がlocalhostに登録されています。あなたの証明書がabc.comに登録されている場合は、次のようにしてhttps呼び出しを変更します。

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