openConnection(proxy) jibni l-konnessjoni b'rotta. Issettja l-metodu HTTP u l-ġisem fuq l-HttpURLConnection mogħtija lura qabel ma tibda t-talba:

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

L-eżempju jibgħat formola żgħira, jistampa l-istat tagħha u jagħlaq fluss ta' risposta mhux użat. Ibdel dak l-aħħar pass bil-maniġġjar tal-ġisem tar-risposta fl-applikazzjoni meta l-ġisem ikun meħtieġ.

L-isem tal-host u l-port tal-proxy jappartjenu lil route. Għal test pubbliku ta' formola permess mingħajr kont tal-proxy, agħżel l-indirizz HTTP minn entrata fil-lista tal-proxy HTTP. L-URL jibqa' l-punt tat-tmiem tal-formola. Għal valuri dinamiċi tal-formola, uża URLEncoder biex tikkodifika kull valur minflok ma tgħaqqad input mhux escapejat b'sinjali ugwali u ampersand.

Il-fluss tal-output jibgħat il-bytes ippreparati. Aqra l-istat wara l-kitba u l-għeluq, imbagħad agħżel il-fluss tar-risposta ordinarju jew tal-iżball skont il-ħtieġa. Risposta HTTP li ma tkunx ta' suċċess tista' jkun fiha kontenut ta' żball utli mill-applikazzjoni jew mill-proxy.

Artikli relatati