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 לא מוצלחת עשויה להכיל תוכן שגיאה שימושי של היישום או של הפרוקסי.

מאמרים קשורים