Слање POST обрасца кроз HTTP прокси помоћу Java HttpURLConnection
Отворите везу са експлицитним HTTP проксијем, изаберите POST, упишите тело обрасца и прегледајте HTTP резултат.
openConnection(proxy) гради везу са рутом. Поставите HTTP методу и тело на враћени HttpURLConnection пре покретања захтева:
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 одговор може садржати користан садржај грешке апликације или проксија.