Dërgimi i një POST formulari përmes një proxy HTTP me Java HttpURLConnection
Hapni një lidhje me një proxy HTTP të qartë, zgjidhni POST, shkruani trupin e formulës dhe shqyrtoni rezultatin HTTP.
openConnection(proxy) ndërton lidhjen me një rrugë. Vendosni metodën HTTP dhe trupin në HttpURLConnection e kthyer përpara se të nisni kërkesën:
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();
}Shembulli dërgon një formular të vogël, printon statusin e tij dhe mbyll një rrjedhë përgjigjeje të papërdorur. Zëvendësoni atë hap të fundit me trajtimin e trupit të përgjigjes në aplikacion kur trupi nevojitet.
Emri i strehuesit dhe porta e proxy-t i përkasin route. Për një provë publike formulari të lejuar pa llogari proxy, zgjidhni adresën HTTP nga një zë në listën e proxy-ve HTTP. URL-ja mbetet pika përfundimtare e formulës. Për vlera dinamike formulari, përdorni URLEncoder për të koduar çdo vlerë në vend që të lidhni input të paeskapuar me shenja barazie dhe ampersand.
Rrjedha e daljes dërgon bajtët e përgatitur. Lexoni statusin pas shkrimit dhe mbylljes, pastaj zgjidhni rrjedhën normale të përgjigjes ose atë të gabimit sipas nevojës. Një përgjigje HTTP jo e suksesshme mund të përmbajë përmbajtje të dobishme gabimi nga aplikacioni ose proxy.