Lomakkeen POST-lähetys HTTP-välityspalvelimen kautta Java HttpURLConnectionilla
Avaa yhteys eksplisiittiseen HTTP-välityspalvelimeen, valitse POST, kirjoita lomakkeen runko ja tarkastele HTTP-tulosta.
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öä.