2012-02-01 22 views
9

मेरे कोड निम्नलिखित की तरह है:HttpURLConnection में http-header "होस्ट" को ओवरराइट कैसे करें?

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

लेकिन जब मैं tcpdump साथ बाहर जाने वाले संकुल लॉग इन करें http हेडर "होस्ट" 1.0.0.25 है।

क्या यह हो सकता है कि http-header "होस्ट" भेजने की प्रक्रिया के बाद के चरण में अधिलेखित हो, यदि हां, तो मैं इस व्यवहार से कैसे बच सकता हूं।

+1

क्यों आप URL में होस्ट नाम का उपयोग नहीं करते? –

+0

मैं आउटगोइंग पैकेज के स्रोत आईपी पते को बदलने के लिए iptables का उपयोग करता हूं, iptables संकुल को खोजने के लिए नकली आईपी पता 1.0.0.25 का उपयोग करें जिसे बदला जाना चाहिए। रिमोट सेवा को नाम आधारित आभासी होस्टिंग सेवा करने के लिए सही डोमेन नाम की आवश्यकता है। – Alex

+0

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

उत्तर

20

Duplicate question.

अंतिम टिप्पणी मेरी समस्या हल:

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

या वी एम स्टार्टअप पर:

-Dsun.net.http.allowRestrictedHeaders=true 
संबंधित मुद्दे