2016-04-25 18 views
1

私はサイトにリクエストを送信するためにhttpclientを使用します。そのサイトチェックサーブレットはホスト名を要求します。 それはこのようにホスト名をチェックします。httpclientで要求ホスト名を設定する方法

String hostName = request.getRemoteHost(); 

と私は要求、ホスト名は常に私のIPアドレスではなく、私のホスト名を送信するとき。 私の送信リクエストコードは次のとおりです:

HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); 
List<Header> headerList = new ArrayList<>(); 
headerList.add(new BasicHeader("Host","myCustomHostName")); 
HttpClientBuilder client = httpClientBuilder.build(); 
HttpGet request = new HttpGet("http://siteaddress:8080/getHostname"); 
request.setHeader(new BasicHeader("Host","myCustomHostnameAgain.just.for.try")); 
client.execute(request); 

しかし、動作しません。

httpclientで要求ホスト名を設定する方法は? thx。

答えて

0

request.getRemoteHost()は、HTTPリクエストのヘッダーを使用しません。代わりにreverse DNS lookupを実行しています。基本的には、リクエストから得たIPを取得し、DNS情報からそれを調べようとします。その情報が存在しない場合、呼び出しがIPアドレスをStringとして返す可能性があります。

+0

ありがとうございます。ホスト名を取得する正しい方法は、HTTPヘッダーを使用していますか? –

関連する問題