openConnection(proxy) ulanishni marshrut bilan quradi. So'rovni boshlashdan oldin qaytarilgan HttpURLConnection'da HTTP usuli va tanani belgilang:

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();
}

Misol kichik formani yuboradi, uning holatini chop etadi va foydalanilmagan javob oqimini yopadi. Tana kerak bo'lganda, bu oxirgi qadamni ilovaning javob tanasini qayta ishlashi bilan almashtiring.

Proksi xost nomi va porti route'ga tegishli. Proksi hisobisiz ruxsat etilgan ommaviy forma sinovi uchun HTTP proksilar ro'yxatidagi yozuvdan HTTP manzilini tanlang. URL forma tugash nuqtasi bo'lib qoladi. Dinamik forma qiymatlari uchun har bir qiymatni URLEncoder bilan kodlang, escape qilinmagan kiritmani teng va ampersand belgilari bilan birlashtirmang.

Chiqish oqimi tayyorlangan baytlarni yuboradi. Yozib va yopgandan keyin holatni o'qing, so'ngra kerak bo'lganda oddiy yoki xato javob oqimini tanlang. Muvaffaqiyatsiz HTTP javobida ilova yoki proksining foydali xato mazmuni bo'lishi mumkin.

O'xshash maqolalar