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