URLConnection เป็นคลาสนามธรรมซึ่งมีคลาสย่อยโดยตรงสองคลาส: HttpURLConnection และ JarURLConnection คลาสที่สำคัญอีกคลาสหนึ่งคือ URL โดยปกติแล้ว URL สามารถสร้างอินสแตนซ์ URL ที่ชี้ไปยังที่อยู่เฉพาะโดยส่งพารามิเตอร์ประเภทสตริงไปยังตัวสร้าง
แต่ละอินสแตนซ์ HttpURLConnection สามารถใช้สร้างคำขอเดียวได้ แต่อินสแตนซ์อื่นๆ สามารถแชร์การเชื่อมต่อเครือข่ายพื้นฐานไปยังเซิร์ฟเวอร์ HTTP ได้อย่างโปร่งใส การเรียกเมธอด close() บน InputStream หรือ OutputStream ของ HttpURLConnection หลังจากที่คำขอเผยแพร่ทรัพยากรเครือข่ายที่เกี่ยวข้องกับอินสแตนซ์นี้ แต่ไม่มีผลกระทบต่อการเชื่อมต่อแบบถาวรที่ใช้ร่วมกัน หากการเชื่อมต่อแบบถาวรไม่ได้ใช้งานเมื่อมีการเรียก Disconnect() ซ็อกเก็ตพื้นฐานอาจถูกปิด
package com.newflypig.demo;/** * ใช้ HttpURLConnection ของ jdk เพื่อส่งคำขอ POST ไปยัง URL และส่งออกผลลัพธ์การตอบสนอง * พารามิเตอร์ถูกส่งผ่านโดยใช้สตรีมและฮาร์ดโค้ดเป็นรูปแบบของสตริง "name=XXX" * /นำเข้า java.io.BufferedReader;นำเข้า java.io.DataOutputStream;นำเข้า java.io.InputStreamReader;นำเข้า java.net.HttpURLConnection;import java.net.URL;import java.net.URLEncoder;public class SendPostDemo { public static void main(String[] args) ส่งข้อยกเว้น{ String urlPath = new String("http://localhost: 8080/Test1/HelloWorld"); //String urlPath = new String("http://localhost:8080/Test1/HelloWorld?name=DingDing".getBytes("UTF-8")); String param="name="+URLEncoder.encode("DingDing","UTF-8 "); // สร้าง URL การเชื่อมต่อ url=URL ใหม่ (urlPath); HttpURLConnection httpConn=(HttpURLConnection)url.openConnection(); //ตั้งค่าพารามิเตอร์ httpConn.setDoOutput(true); //จำเป็นต้องส่งออก httpConn.setDoInput(true); //จำเป็นต้องป้อน httpConn.setUseCaches(false); //ไม่อนุญาตให้แคช httpConn.setRequestMethod("POST"); //ตั้งค่าการเชื่อมต่อ POST //ตั้งค่าคุณสมบัติคำขอ httpConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); httpConn.setRequestProperty("Connection", "Keep-Alive");//รักษาการเชื่อมต่อที่ยาวนาน httpConn.setRequestProperty("Charset", "UTF-8"); //Connect คุณสามารถใช้ httpConn ต่อไปนี้โดยไม่มีข้อความที่ชัดเจนได้ เชื่อมต่อ getOutputStream() จะเชื่อมต่อ httpConn.connect(); // สร้างสตรีมอินพุตและส่งพารามิเตอร์ DataOutputStream dos=new ไปยัง URL ที่ชี้ไป DataOutputStream(httpConn.getOutputStream()); dos.writeBytes(param); dos.close(); // รับสถานะการตอบสนอง int resultCode=httpConn.getResponseCode(); resultCode ){ StringBuffer sb=new StringBuffer(); สตริง readLine=สตริงใหม่(); BufferedReader responseReader=ใหม่ BufferedReader(ใหม่ InputStreamReader(httpConn.getInputStream(),"UTF-8")); while((readLine=responseReader.readLine())!=null){ sb.append(readLine).append("/ n"); } responseReader.close(); System.out.println(sb.toString()); -
JAVA ใช้ HttpURLConnection เพื่อส่งข้อมูล POST ในรูปแบบของสตรีม OutputStream
ในระหว่างกระบวนการเข้ารหัสเฉพาะ พารามิเตอร์จะถูกส่งในรูปแบบของสตริง "name=XXX"
เนื้อหาข้างต้นอธิบายไว้ในบทความนี้แล้ว ฉันหวังว่าบทนำนี้จะเป็นประโยชน์กับทุกคน