إرسال POST لنموذج عبر وكيل HTTP باستخدام Java HttpURLConnection
افتح اتصالًا عبر وكيل HTTP صريح، واختر POST، واكتب جسم النموذج، وافحص نتيجة HTTP.
ينشئ openConnection(proxy) الاتصال بمسار محدد. اضبط طريقة HTTP والجسم على HttpURLConnection المُعاد قبل بدء الطلب:
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 غير ناجحة على محتوى خطأ مفيد من التطبيق أو من الوكيل.