2012-02-01 18 views
9

Moje kodu jest jak poniżej:Jak zastąpić nagłówek http "Host" w HttpURLConnection?

URL url = new URL("1.0.0.25/otfg/services"); 
HttpURLConnection cnx = url.openConnection(); 
cnx.setRequestProperty("Host", "example.org"); 

Ale gdy loguję pakiety wychodzące z tcpdump http-header "Host" jest 1.0.0.25.

Czy to możliwe, że nagłówek http "Host" zostanie nadpisany na późniejszym etapie procesu wysyłania, jeśli tak, jak mogę tego uniknąć.

+1

Dlaczego nie używacie nazwy hosta w adresie URL? –

+0

Używam iptables do zmiany źródłowego adresu ip wychodzących pakietów, iptables używają fałszywego adresu ip 1.0.0.25, aby znaleźć pakiety, które muszą zostać zmienione. Zdalna potrzeba usługi to poprawna nazwa domeny dla usługi wirtualnego hostingu opartej na nazwie. – Alex

+0

Duplikat http://stackoverflow.com/questions/7648872/can-i-override-thehost-header-where-using-javas-httpurlconnection-class – Gray

Odpowiedz

20

Duplicate question.

Ostatni komentarz rozwiązać mój problem:

System.setProperty("sun.net.http.allowRestrictedHeaders", "true") 

Albo VM starcie:

-Dsun.net.http.allowRestrictedHeaders=true 
Powiązane problemy