openConnection(proxy) konstruas la konekton kun itinero. Agordu la HTTP-metodon kaj la korpon sur la redonita HttpURLConnection antaŭ ol komenci la peton:

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

La ekzemplo sendas malgrandan formularon, presas ĝian staton kaj fermas neuzatan respondofluon. Anstataŭigu tiun lastan paŝon per la traktado de la respondokorpo en la aplikaĵo, kiam la korpo necesas.

La gastiga nomo kaj pordo de la prokurilo apartenas al route. Por permesata publika formulartesto sen prokura konto, elektu la HTTP-adreson el ero en la listo de HTTP-prokuriloj. La URL restas la finpunkto de la formularo. Por dinamikaj formularvaloroj uzu URLEncoder por kodi ĉiun valoron anstataŭ kunigi neeskapitan enigon per egalaj kaj ampersandaj signoj.

La eliga fluo sendas la pretigitajn bajtojn. Legu la staton post skribo kaj fermo, poste elektu la ordinaran aŭ la eraran respondofluon laŭbezone. Malsukcesa HTTP-respondo povas enhavi utilan eraran enhavon de la aplikaĵo aŭ de la prokurilo.

Rilataj artikoloj