Java HttpURLConnection ilə HTTP proksisi vasitəsilə form POST göndərin
Açıq HTTP proksisi ilə bağlantı açın, POST seçin, formun gövdəsini yazın və HTTP nəticəsini yoxlayın.
openConnection(proxy) bağlantını marşrutla qurur. Sorğunu başlatmazdan əvvəl qaytarılan HttpURLConnection üzərində HTTP metodunu və gövdəni təyin edin:
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();
}Nümunə kiçik bir form göndərir, statusunu çap edir və istifadə olunmayan cavab axınını bağlayır. Gövdəyə ehtiyac olduqda son addımı tətbiqin cavab-gövdəsi emalı ilə əvəz edin.
Proksinin host adı və portu route-a aiddir. Proksi hesabı olmadan icazə verilən ictimai form testi üçün HTTP proksi siyahısı daxilindəki girişdən HTTP ünvanını seçin. URL formun son nöqtəsi olaraq qalır. Dinamik form dəyərləri üçün hər dəyəri URLEncoder ilə kodlaşdırın, qaçışsız girişi bərabərlik və ampersand işarələri ilə birləşdirməyin.
Çıxış axını hazırlanmış baytları göndərir. Yazıb bağladıqdan sonra statusu oxuyun, sonra lazım olduqda adi və ya səhv cavab axınını seçin. Uğursuz HTTP cavabı tətbiqin və ya proksinin faydalı səhv məzmununu ehtiva edə bilər.