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 жауабында қолданбаның немесе проксидің пайдалы қате мазмұны болуы мүмкін.