Fi POST fọọmu ránṣẹ́ nípasẹ̀ HTTP proxy pẹ̀lú Java HttpURLConnection
Ṣí ìsopọ̀ pẹ̀lú HTTP proxy tí ó ṣe kedere, yan POST, kọ ara fọọmu náà kí o sì yẹ wo àbájáde HTTP.
openConnection(proxy) ń kọ́ ìsopọ̀ náà pẹ̀lú ipa-ọ̀nà kan. Ṣètò ọ̀nà HTTP àti ara náà lórí HttpURLConnection tí a dá padà kí o tó bẹ̀rẹ̀ ìbéèrè 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();
}Àpẹẹrẹ náà ń fi fọọmu kékeré ránṣẹ́, ń tẹ ipò rẹ̀ jáde, ó sì ń pa ṣíṣan ìdáhùn tí a kò lò mọ́. Rọ́pò ìgbésẹ̀ ìkẹyìn yẹn pẹ̀lú ìtọ́jú ara ìdáhùn ti ohun èlò náà nígbà tí a bá nílò ara náà.
Orúkọ agbàlejò àti ibùdó proxy jẹ́ ti route. Fún àdánwò fọọmu gbogbogbo tí a gbà láyè láìsí àkọsílẹ̀ proxy, yan àdírẹ́sì HTTP láti inú àkọsílẹ̀ kan nínú àkójọ proxy HTTP. URL náà wà gẹ́gẹ́ bí ibi ìparí fọọmu náà. Fún àwọn iye fọọmu tí ń yí padà, lo URLEncoder láti ṣe àmì ìkọ́dù fún iye kọ̀ọ̀kan dípò sísopọ̀ ìwọlé tí a kò yọ kúrò pẹ̀lú àmì dọ́gba àti ampersand.
Ṣíṣan ìjáde ń fi àwọn byte tí a ti múra ránṣẹ́. Ka ipò náà lẹ́yìn kíkọ àti pípa, lẹ́yìn náà yan ṣíṣan ìdáhùn deede tàbí ti àṣìṣe bí ó bá yẹ. Ìdáhùn HTTP tí kò ṣàṣeyọrí lè ní àkóónú àṣìṣe tí ó wúlò láti ọ̀dọ̀ ohun èlò náà tàbí proxy.