openConnection(proxy) rakentaa yhteyden reitillä. Aseta HTTP-menetelmä ja runko palautettuun HttpURLConnectioniin ennen pyynnön aloittamista:

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

Esimerkki lähettää pienen lomakkeen, tulostaa sen tilan ja sulkee käyttämättömän vastausvirran. Korvaa viimeinen vaihe sovelluksen vastausrungon käsittelyllä, kun runkoa tarvitaan.

Välityspalvelimen isäntänimi ja portti kuuluvat routeen. Sallittuun julkiseen lomaketestiin ilman välityspalvelintiliä valitse HTTP-osoite HTTP-välityspalvelinluettelon merkinnästä. URL pysyy lomakkeen päätepisteenä. Dynaamisille lomakearvoille koodaa jokainen arvo URLEncoderilla sen sijaan, että liittäisit suojaamatonta syötettä yhtäsuuruus- ja ampersandimerkeillä.

Tulostusvirta lähettää valmistellut tavut. Lue tila kirjoittamisen ja sulkemisen jälkeen ja valitse sitten tavallinen tai virhevastausvirta tarpeen mukaan. Epäonnistunut HTTP-vastaus voi sisältää hyödyllistä sovelluksen tai välityspalvelimen virhesisältöä.

Aiheeseen liittyvät artikkelit