Java HttpURLConnection के साथ HTTP प्रॉक्सी से फ़ॉर्म POST भेजें
स्पष्ट HTTP प्रॉक्सी के साथ कनेक्शन खोलें, POST चुनें, फ़ॉर्म का बॉडी लिखें और उसका HTTP परिणाम जाँचें।
openConnection(proxy) रूट के साथ कनेक्शन बनाता है। अनुरोध शुरू करने से पहले लौटाए गए HttpURLConnection पर HTTP विधि और बॉडी सेट करें:
Proxy route = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("proxy.example", 8080));
HttpURLConnection connection = (HttpURLConnection)
URI.create("http://www.example.com/submit").toURL().openConnection(route);
try {
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8");
byte[] form = "message=hello+proxy".getBytes(StandardCharsets.UTF_8);
try (OutputStream out = connection.getOutputStream()) {
out.write(form);
}
int status = connection.getResponseCode();
System.out.println(status);
InputStream response = status >= 400
? connection.getErrorStream() : connection.getInputStream();
if (response != null) response.close();
} finally {
connection.disconnect();
}उदाहरण एक छोटा फ़ॉर्म भेजता है, उसकी स्थिति प्रिंट करता है और अप्रयुक्त प्रतिक्रिया स्ट्रीम बंद करता है। जब बॉडी की आवश्यकता हो तो उस अंतिम चरण को एप्लिकेशन के प्रतिक्रिया-बॉडी प्रबंधन से बदलें।
प्रॉक्सी का होस्टनाम और पोर्ट route के हैं। प्रॉक्सी खाते के बिना अनुमत सार्वजनिक फ़ॉर्म परीक्षण के लिए HTTP प्रॉक्सी सूची में किसी प्रविष्टि से HTTP पता चुनें। URL फ़ॉर्म का अंतिम बिंदु ही रहता है। गतिशील फ़ॉर्म मानों के लिए URLEncoder का उपयोग करके प्रत्येक मान को एन्कोड करें, बिना एस्केप किए इनपुट को बराबर चिह्नों और एम्परसेंड से न जोड़ें।
आउटपुट स्ट्रीम तैयार बाइट्स भेजती है। लिखने और बंद करने के बाद स्थिति पढ़ें, फिर उपयुक्त सामान्य या त्रुटि प्रतिक्रिया स्ट्रीम चुनें। असफल HTTP प्रतिक्रिया में एप्लिकेशन या प्रॉक्सी की उपयोगी त्रुटि सामग्री हो सकती है।