Űrlap POST küldése HTTP-proxyn keresztül Java HttpURLConnectionnel
Nyisson kapcsolatot egy explicit HTTP-proxyval, válassza a POST-ot, írja meg az űrlap törzsét, és vizsgálja meg a HTTP-eredményt.
Az openConnection(proxy) a kapcsolatot egy útvonallal építi fel. A kérés indítása előtt állítsa be a HTTP-metódust és a törzset a visszakapott HttpURLConnectionön:
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();
}A példa egy kis űrlapot küld, kiírja az állapotát, és lezár egy nem használt válaszfolyamot. Ha a törzsre szükség van, cserélje le ezt az utolsó lépést az alkalmazás választörzs-kezelésére.
A proxy hosztneve és portja a route-hoz tartozik. Proxyfiók nélküli, engedélyezett nyilvános űrlapteszthez válasszon HTTP-címet a HTTP-proxylista egyik bejegyzéséből. Az URL az űrlap végpontja marad. Dinamikus űrlapértékekhez használja az URLEncoder osztályt az egyes értékek kódolására, ne fűzze össze a nem escape-elt bemenetet egyenlőség- és ampersandjelekkel.
A kimeneti folyam elküldi az előkészített bájtokat. Írás és lezárás után olvassa ki az állapotot, majd válassza a szokásos vagy a hiba-válaszfolyamot. Egy sikertelen HTTP-válasz hasznos alkalmazás- vagy proxyhiba-tartalmat hordozhat.