openConnection(proxy) sukuria ryšį su maršrutu. Prieš pradedant užklausą, grąžintame HttpURLConnection nustatykite HTTP metodą ir turinį:

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

Pavyzdys siunčia mažą formą, išspausdina jos būseną ir uždaro nenaudojamą atsakymo srautą. Kai turinio reikia, pakeiskite šį paskutinį žingsnį programos atsakymo turinio apdorojimu.

Tarpinio serverio pagrindinio kompiuterio vardas ir prievadas priklauso route. Jei norite leidžiamo viešo formos bandymo be tarpinio serverio paskyros, pasirinkite HTTP adresą iš HTTP tarpinių serverių sąrašo įrašo. URL lieka formos pabaigos tašku. Dinaminėms formos reikšmėms naudokite URLEncoder kiekvienai reikšmei koduoti, o ne junkite neužkoduotus duomenis lygybės ir ampersando ženklais.

Išvesties srautas siunčia paruoštus baitus. Perskaitykite būseną po įrašymo ir uždarymo, tada pasirinkite įprastą arba klaidos atsakymo srautą. Nesėkmingas HTTP atsakymas gali turėti naudingą programos ar tarpinio serverio klaidos turinį.

Susiję straipsniai