openConnection(proxy) bygger tilkoblingen med en rute. Angi HTTP-metoden og kroppen på den returnerte HttpURLConnection før forespørselen startes:

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

Eksempelet sender et lite skjema, skriver ut statusen og lukker en ubrukt svarestrøm. Erstatt det siste trinnet med applikasjonens håndtering av svarkroppen når kroppen trengs.

Proxyens vertsnavn og port tilhører route. For en tillatt offentlig skjematest uten proxykonto, velg HTTP-adressen fra en oppføring i HTTP-proxylisten. URL-en forblir skjemaets endepunkt. For dynamiske skjemaverdier bruker du URLEncoder til å kode hver verdi i stedet for å sette sammen uescapet inndata med likhetstegn og ampersander.

Utstrømmen sender de forberedte bytene. Les statusen etter at du har skrevet og lukket, og velg deretter den vanlige eller feil-svarestrømmen etter behov. Et mislykket HTTP-svar kan inneholde nyttig feilinnhold fra applikasjonen eller proxyen.

Relaterte artikler