openConnection(proxy) membina sambungan dengan laluan. Tetapkan kaedah HTTP dan badan pada HttpURLConnection yang dikembalikan sebelum memulakan permintaan:

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

Contoh menghantar borang kecil, mencetak statusnya dan menutup strim respons yang tidak digunakan. Gantikan langkah terakhir itu dengan pengendalian badan respons aplikasi apabila badan diperlukan.

Nama hos dan port proksi tergolong dalam route. Untuk ujian borang awam yang dibenarkan tanpa akaun proksi, pilih alamat HTTP daripada entri dalam senarai proksi HTTP. URL kekal sebagai titik akhir borang. Untuk nilai borang dinamik, gunakan URLEncoder untuk mengekod setiap nilai dan bukannya mencantumkan input yang tidak di-escape dengan tanda sama dengan dan ampersand.

Strim output menghantar bait yang disediakan. Baca status selepas menulis dan menutupnya, kemudian pilih strim respons biasa atau ralat mengikut kesesuaian. Respons HTTP yang tidak berjaya mungkin mengandungi kandungan ralat aplikasi atau proksi yang berguna.

Artikel berkaitan