บทความนี้อธิบายตัวอย่างข้อมูลรหัสรายละเอียดของการโพสต์รับและคำขอการเข้าถึงพร็อกซีสำหรับ Java เพื่อใช้ HTTP มันถูกแชร์กับคุณสำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
แพ็คเกจ com.snowfigure.kits.net; นำเข้า java.io.bufferedreader; นำเข้า java.io.ioException; นำเข้า Java.io.InputStream; นำเข้า Java.io.InputStreamReader; นำเข้า Java.io.OutputStreamWriter; นำเข้า java.io.unsupportencodingexception; นำเข้า java.net.httpurlconnection; นำเข้า java.net.inetsocketaddress; นำเข้า java.net.proxy; นำเข้า java.net.url; นำเข้า java.net.urlconnection; นำเข้า java.util.list; นำเข้า java.util.map; /** * คลาสเครื่องมือคำขอ http * @author Snowfigure * @since 2014-8-24 13:30:56 * @version v1.0.1 */คลาสสาธารณะ httprequestutil {proxyset บูลีนแบบคงที่ = false; String String proxyhost = "127.0.0.1"; proxyport int คงที่ = 8087; / ** * การเข้ารหัส * @param แหล่งที่มา * @return */ urlencode สตริงคงที่สาธารณะ (แหล่งที่มาของสตริง, การเข้ารหัสสตริง) {สตริงผลลัพธ์ = แหล่งที่มา; ลอง {result = java.net.urlencoder.encode (แหล่งที่มา, เข้ารหัส); } catch (unsupportencodingexception e) {e.printstacktrace (); กลับ "0"; } ผลตอบแทนผลลัพธ์; } สาธารณะสตริงคงที่ urlencodegbk (แหล่งที่มาของสตริง) {สตริงผลลัพธ์ = แหล่งที่มา; ลอง {result = java.net.urlencoder.encode (แหล่งที่มา, "gbk"); } catch (unsupportencodingexception e) {e.printstacktrace (); กลับ "0"; } ผลตอบแทนผลลัพธ์; } / *** เริ่มต้นคำขอ HTTP เพื่อรับผลการส่งคืน* @Param req_url ที่อยู่คำขอ* @return* / สตริงคงที่สาธารณะ httprequest (String req_url) {StringBuffer buffer = new StringBuffer (); ลอง {url url = url ใหม่ (req_url); httpurlConnection httpurlconn = (httpurlconnection) url.openconnection (); httpurlconn.setDooutput (false); httpurlconn.setDoInput (จริง); httpurlconn.setusecaches (เท็จ); httpurlconn.setrequestmethod ("รับ"); httpurlconn.connect (); // แปลงสตรีมอินพุตที่ส่งคืนเป็นสตริง inputStream inputStream = httpurlConn.getInputStream (); inputStreamReader inputStreamReader = new InputStreamReader (inputStream, "UTF-8"); bufferedReader bufferedReader = ใหม่ bufferedReader (inputStreamReader); string str = null; ในขณะที่ ((str = bufferedreader.readline ())! = null) {buffer.append (str); } bufferedReader.close (); InputStreamReader.close (); // ปล่อยทรัพยากร inputstream.close (); inputStream = null; httpurlconn.disconnect (); } catch (exception e) {system.out.println (e.getStackTrace ()); } return buffer.toString (); } / *** ส่งคำขอ HTTP เพื่อรับสตรีมอินพุตที่ส่งคืน* @param requesturl requesturl ที่อยู่* @return inputstream* / public static inputstream httprequestio (requesturl สตริง) {inputstream inputstream = null; ลอง {url url = url ใหม่ (requesturl); httpurlConnection httpurlconn = (httpurlconnection) url.openconnection (); httpurlconn.setDoInput (จริง); httpurlconn.setrequestmethod ("รับ"); httpurlconn.connect (); // รับ inputstream ที่ส่งคืน = httpurlconn.getInputStream (); } catch (exception e) {e.printstacktrace (); } return inputstream; } /** * ส่งคำขอไปยัง URL ที่ระบุ * * @param url * url เพื่อส่งคำขอ * @param พารามิเตอร์ * พารามิเตอร์คำขอพารามิเตอร์การร้องขอควรอยู่ในรูปแบบของ NAME1 = Value1 & NAME2 = value2 * @return URL การตอบสนองผลลัพธ์ของทรัพยากรระยะไกลที่แสดงโดยทรัพยากรระยะไกล*/ สตริงคงที่สาธารณะ sendget (สตริง url, พารามิเตอร์สตริง) {string result = ""; bufferedReader ใน = null; ลอง {string urlnamestring = url + "?" + param; url realurl = url ใหม่ (urlnamestring); // เปิดการเชื่อมต่อระหว่างการเชื่อมต่อ urlconnection url = realurl.openconnection (); // ตั้งค่าแอตทริบิวต์การร้องขอทั่วไปการเชื่อมต่อ SetRequestProperty ("ยอมรับ", "*/*"); Connection.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); Connection.setRequestProperty ("ผู้ใช้ตัวแทน", "Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)"); // สร้างการเชื่อมต่อการเชื่อมต่อจริง connect (); // รับฟิลด์ส่วนหัวตอบกลับทั้งหมด <String, list <String>> map = connection.getheaderfields (); // traverse ฟิลด์ส่วนหัวการตอบสนองทั้งหมดสำหรับ (คีย์สตริง: map.keyset ()) {system.out.println (คีย์ + "--->" + map.get (คีย์)); } // กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนองของ URL ใน = bufferedReader ใหม่ (ใหม่ inputStreamReader (Connection.getInputStream ())); สายสตริง; ในขณะที่ ((line = in.readline ())! = null) {result += line; }} catch (exception e) {system.out.println ("ข้อยกเว้นเกิดขึ้นเมื่อส่งคำขอรับ!" + e); E.PrintStackTrace (); } // ใช้ในที่สุดบล็อกเพื่อปิดสตรีมอินพุตในที่สุด {ลอง {ถ้า (ใน! = null) {in.close (); }} catch (Exception e2) {e2.printstackTrace (); }} ผลการส่งคืน; } /** * ส่งคำขอไปยัง URL ที่ระบุ * @param url * url เพื่อส่งคำขอ * @param พารามิเตอร์ * พารามิเตอร์คำขอพารามิเตอร์คำขอควรอยู่ในรูปแบบของชื่อ 1 = value1 & name2 = value2 * @param isproxy * ว่าจะใช้โหมดพร็อกซี * @return ผลการตอบกลับของทรัพยากรระยะไกลที่แสดงโดย @return */ สตริงคงที่สาธารณะ sendpost (url สตริง, พารามิเตอร์สตริง, บูลีน isproxy) bufferedReader ใน = null; สตริงผลลัพธ์ = ""; ลอง {url realurl = url ใหม่ (url); httpurlConnection conn = null; if (isproxy) {// ใช้โหมดพร็อกซี @suppresswarnings ("คงที่-access") พร็อกซีพร็อกซี = พร็อกซีใหม่ (proxy.type.direct.http, ใหม่ inetsocketaddress (proxyhost, proxyport); conn = (httpurlconnection) realurl.openconnection (พร็อกซี); } else {conn = (httpurlconnection) realurl.openconnection (); } // เปิดการเชื่อมต่อกับ URL // เพื่อส่งคำขอโพสต์คุณต้องตั้งค่าสองบรรทัดต่อไปนี้ conn.setDoOutput (จริง); conn.setDoInput (จริง); conn.setRequestMethod ("โพสต์"); // โพสต์เมธอด // ตั้งค่าแอตทริบิวต์คำขอทั่วไป conn.setRequestProperty ("ยอมรับ", "*/*"); conn.setRequestProperty ("การเชื่อมต่อ", "Keep-Alive"); conn.setRequestProperty ("ผู้ใช้ตัวแทน", "Mozilla/4.0 (เข้ากันได้; MSIE 6.0; Windows NT 5.1; SV1)"); conn.setRequestProperty ("ประเภทเนื้อหา", "แอปพลิเคชัน/x-www-form-urlencoded"); conn.connect (); // รับกระแสเอาต์พุตที่สอดคล้องกับ URLConnection Object = New OutputStreamWriter (conn.getOutputStream (), "UTF-8"); // ส่งพารามิเตอร์การร้องขอ out.write (param); // บัฟเฟอร์ out.flush () ของกระแสไฟฟลัช; // กำหนดสตรีมอินพุต bufferedReader เพื่ออ่านการตอบสนอง URL ใน = ใหม่ bufferedReader (ใหม่ inputStreamReader (conn.getInputStream ())); สายสตริง; ในขณะที่ ((line = in.readline ())! = null) {result += line; }} catch (exception e) {system.out.println ("ส่งโพสต์มีข้อยกเว้นในคำขอ!"+e); E.PrintStackTrace (); } // ใช้ในที่สุดบล็อกเพื่อปิดสตรีมเอาต์พุตและสตรีมอินพุตในที่สุด {ลอง {ถ้า (ออก! = null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printstacktrace (); }} ผลการส่งคืน; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {// การสาธิต: Agent Access String url = "http://api.adf.ly/api.php"; String para = "key = youkeyId & youuid = uid & advert_type = int & domain = adf.ly & url = http: //somewebsite.com"; String SR = HTTPREQUESTUTIL.SENDPOST (URL, PARA, TRUE); System.out.println (SR); -ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับทุกคนในการเรียนรู้การเขียนโปรแกรม Java