Java HttpURLConnection ဖြင့် HTTP proxy မှတစ်ဆင့် ဖောင် POST ပို့ခြင်း
ရှင်းလင်းသော HTTP proxy ဖြင့် ချိတ်ဆက်မှုဖွင့်ပါ၊ POST ရွေးပါ၊ ဖောင်၏ body ကို ရေးပြီး HTTP ရလဒ်ကို စစ်ဆေးပါ။
openConnection(proxy) သည် လမ်းကြောင်းတစ်ခုဖြင့် ချိတ်ဆက်မှုကို တည်ဆောက်သည်။ တောင်းဆိုမှု မစတင်မီ ပြန်ရသော HttpURLConnection ပေါ်တွင် HTTP နည်းလမ်းနှင့် body ကို သတ်မှတ်ပါ:
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();
}ဥပမာသည် ဖောင်ငယ်တစ်ခုကို ပို့ပြီး ၎င်း၏ အခြေအနေကို ပရင့်ထုတ်ကာ အသုံးမပြုသော တုံ့ပြန်မှု stream ကို ပိတ်သည်။ body လိုအပ်သောအခါ ထိုနောက်ဆုံးအဆင့်ကို အပလီကေးရှင်း၏ တုံ့ပြန်မှု body ကိုင်တွယ်မှုဖြင့် အစားထိုးပါ။
proxy ၏ hostname နှင့် port သည် route ၏ အစိတ်အပိုင်းဖြစ်သည်။ proxy အကောင့်မလိုဘဲ ခွင့်ပြုထားသော အများသူငှာ ဖောင်စမ်းသပ်မှုအတွက် HTTP proxy စာရင်း မှ ထည့်သွင်းချက်တစ်ခု၏ HTTP လိပ်စာကို ရွေးပါ။ URL သည် ဖောင်၏ အဆုံးမှတ်အဖြစ် ဆက်ရှိသည်။ ပြောင်းလဲနိုင်သော ဖောင်တန်ဖိုးများအတွက် escape မလုပ်ထားသော ထည့်သွင်းမှုကို ညီမျှခြင်းနှင့် ampersand သင်္ကေတများဖြင့် မချိတ်ဆက်ဘဲ တန်ဖိုးတစ်ခုစီကို URLEncoder ဖြင့် ကုဒ်လုပ်ပါ။
output stream သည် ပြင်ဆင်ထားသော byte များကို ပို့သည်။ ရေးပြီး ပိတ်ပြီးနောက် အခြေအနေကို ဖတ်ပါ၊ ထို့နောက် သင့်လျော်သလို သာမန် သို့မဟုတ် အမှား တုံ့ပြန်မှု stream ကို ရွေးပါ။ မအောင်မြင်သော HTTP တုံ့ပြန်မှုတွင် အပလီကေးရှင်း သို့မဟုတ် proxy ၏ အသုံးဝင်သော အမှားအကြောင်းအရာ ပါဝင်နိုင်သည်။