Magpadala ng POST ng Form sa Pamamagitan ng HTTP Proxy gamit ang Java HttpURLConnection
Buksan ang koneksyon gamit ang tahasang HTTP proxy, piliin ang POST, isulat ang katawan ng form at suriin ang resulta ng HTTP.
Binubuo ng openConnection(proxy) ang koneksyon gamit ang isang ruta. Itakda ang paraan ng HTTP at ang katawan sa ibinalik na HttpURLConnection bago simulan ang kahilingan:
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();
}Nagpapadala ang halimbawa ng maliit na form, ipinapakita ang katayuan nito at isinasara ang hindi ginamit na stream ng tugon. Palitan ang huling hakbang na iyon ng paghawak ng katawan ng tugon sa aplikasyon kapag kailangan ang katawan.
Ang hostname at port ng proxy ay kabilang sa route. Para sa pinapayagang pampublikong pagsubok ng form na walang account sa proxy, piliin ang HTTP address mula sa isang entry sa listahan ng HTTP proxy. Ang URL ay nananatiling endpoint ng form. Para sa mga dynamic na halaga ng form, gamitin ang URLEncoder upang i-encode ang bawat halaga sa halip na pagsamahin ang hindi naka-escape na input gamit ang mga tandang katumbas at ampersand.
Ipinapadala ng output stream ang inihandang bytes. Basahin ang katayuan pagkatapos isulat at isara, pagkatapos ay piliin ang karaniwan o ang stream ng tugon sa error ayon sa angkop. Ang hindi matagumpay na tugon ng HTTP ay maaaring maglaman ng kapaki-pakinabang na nilalaman ng error mula sa aplikasyon o proxy.