openConnection(proxy) bygger anslutningen med en rutt. Ange HTTP-metoden och brödtexten på den returnerade HttpURLConnection innan begäran startas:

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

Exemplet skickar ett litet formulär, skriver ut dess status och stänger en oanvänd svarsström. Ersätt det sista steget med programmets hantering av svarskroppen när kroppen behövs.

Proxyns värdnamn och port tillhör route. För ett tillåtet offentligt formulärtest utan proxykonto väljer du HTTP-adressen från en post i HTTP-proxylistan. URL:en förblir formulärets slutpunkt. För dynamiska formulärvärden använder du URLEncoder för att koda varje värde i stället för att sammanfoga oescapad indata med likhetstecken och ampersandtecken.

Utströmmen skickar de förberedda byteen. Läs statusen efter att du skrivit och stängt, välj sedan den vanliga eller fel-svarsströmmen efter behov. Ett misslyckat HTTP-svar kan innehålla användbart felinnehåll från programmet eller proxyn.

Relaterade artiklar