Kirim POST Formulir Melalui Proksi HTTP dengan Java HttpURLConnection
Buka koneksi dengan proksi HTTP eksplisit, pilih POST, tulis isi formulir, dan periksa hasil HTTP-nya.
openConnection(proxy) membangun koneksi dengan sebuah rute. Atur metode HTTP dan isi pada HttpURLConnection yang dikembalikan sebelum memulai 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 mengirim formulir kecil, mencetak statusnya, dan menutup aliran respons yang tidak terpakai. Ganti langkah terakhir itu dengan penanganan isi respons aplikasi saat isi tersebut diperlukan.
Nama host dan port proksi termasuk dalam route. Untuk uji formulir publik yang diizinkan tanpa akun proksi, pilih alamat HTTP dari entri di daftar proksi HTTP. URL tetap menjadi titik akhir formulir. Untuk nilai formulir dinamis, gunakan URLEncoder untuk mengodekan setiap nilai alih-alih menyambung input yang tidak di-escape dengan tanda sama dengan dan ampersand.
Aliran keluaran mengirim bita yang telah disiapkan. Baca status setelah menulis dan menutupnya, lalu pilih aliran respons biasa atau galat sesuai kebutuhan. Respons HTTP yang tidak berhasil dapat memuat konten galat aplikasi atau proksi yang berguna.