تشرح هذه المقالة مقتطفات التعليمات البرمجية التفصيلية لطلبات بوست و GET و Proxy للوصول إلى Java لتنفيذ HTTP. تتم مشاركتها معك للرجوع إليها. المحتوى المحدد كما يلي
حزمة com.snowfigure.kits.net ؛ استيراد java.io.bufferedreader ؛ استيراد java.io.ioException ؛ استيراد java.io.inputstream ؛ استيراد java.io.inputstreamreader ؛ استيراد java.io.outputStreamWriter ؛ استيراد java.io.unsupportedencodingException ؛ استيراد java.net.httpurlconnection ؛ استيراد java.net.inetsocketaddress ؛ استيراد java.net.proxy ؛ استيراد java.net.url ؛ استيراد java.net.urlconnection ؛ استيراد java.util.list ؛ استيراد java.util.map ؛ /** * HTTP TERRED TOURT CLASS * Author Snowfigure * since 2014-8-24 13:30:56 * version v1.0.1 */public class httprequestutil {Static Boolean ProxySet = false ؛ Static String Proxyhost = "127.0.0.1" ؛ ثابت int proxyport = 8087 ؛ / ** * الترميز * param source * @return */ public static string urlencode (مصدر السلسلة ، تشفير السلسلة) {string result = source ؛ حاول {result = java.net.urlencoder.encode (المصدر ، encode) ؛ } catch (UnsupportedEncodingException e) {E.PrintStackTrace () ؛ العودة "0" ؛ } نتيجة الإرجاع ؛ } urlencodegbk urlencodegbk (مصدر السلسلة) {سلسلة = مصدر ؛ حاول {result = java.net.urlencoder.encode (المصدر ، "GBK") ؛ } catch (UnsupportedEncodingException e) {E.PrintStackTrace () ؛ العودة "0" ؛ } نتيجة الإرجاع ؛ } / *** ابدأ طلب HTTP للحصول على نتيجة الإرجاع* @Param req_url عنوان طلب* @RETURN* / سلسلة ثابتة عامة httprequest (String req_url) {StringBuffer Buffer = new StringBuffer () ؛ حاول {url url = url new (req_url) ؛ httpurlConnection httpurlconn = (httpurlConnection) url.openconnection () ؛ httpurlconn.setDooutput (false) ؛ httpurlconn.setDoInput (true) ؛ httpurlconn.setusecaches (false) ؛ httpurlconn.setRequestMethod ("get") ؛ httpurlconn.connect () ؛ // قم بتحويل دفق الإدخال الذي تم إرجاعه إلى inputStream inputStream = httpurlconn.getInputStream () ؛ inputStreamReader inputStreamReader = جديد inputStreamReader (inputStream ، "UTF-8") ؛ BufferredReader BufferedReader = جديد BufferEdReader (inputStreamReader) ؛ سلسلة str = null ؛ بينما ((str = bufferedReader.ReadLine ())! = null) {buffer.append (str) ؛ } bufferedReader.Close () ؛ inputStreamReader.Close () ؛ // إطلاق المورد inputStream.close () ؛ inputStream = null ؛ httpurlconn.disconnect () ؛ } catch (استثناء e) {system.out.println (E.GetStackTrace ()) ؛ } return buffer.toString () ؛ } / *** أرسل طلب http للحصول على دفق الإدخال الذي تم إرجاعه* @param request request* return inputStream* / public static inputstream httprequestio (string requesturl) {inputStream inputStream = null ؛ حاول {url url = url new (requesturl) ؛ httpurlConnection httpurlconn = (httpurlConnection) url.openconnection () ؛ httpurlconn.setDoInput (true) ؛ httpurlconn.setRequestMethod ("get") ؛ httpurlconn.connect () ؛ // الحصول على inputStream = httpurlconn.getInputStream () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ } إرجاع inputStream ؛ } /** * أرسل طلبًا إلى url المحدد * * url url * url لإرسال الطلب * param param * معلمات الطلب ، يجب أن تكون معلمات الطلب في نموذج name1 = value1 & name2 = value2. * return url response نتيجة للموارد عن بُعد الممثلة في المورد عن بُعد*/ سلسلة ثابتة عامة sendget (url url string ، string param) {string result = "" ؛ BufferedReader في = فارغة ؛ حاول {String urlnamestring = url + "؟"؟ + param ؛ url realurl = url جديد (urlnamestring) ؛ // افتح الاتصال بين اتصال urlconnection url = realurl.openconnection () ؛ // قم بتعيين Connection.SetRequestProperty ("قبول" ، "*/*") ؛ connection.setRequestProperty ("connection" ، "keep-alive") ؛ connection.setRequestProperty ("Assion-Agent" ، "Mozilla/4.0 (متوافق ؛ MSIE 6.0 ؛ Windows NT 5.1 ؛ SV1)") ؛ // إنشاء اتصال فعلي connection.connect () ؛ // احصل على جميع حقول رأس الاستجابة <string ، قائمة <Tring>> map = connection.getheaderfields () ؛ . }. خط السلسلة بينما ((line = in.readline ())! = null) {result += line ؛ }} catch (استثناء e) {system.out.println ("حدث استثناء عند إرسال طلب الحصول على!" + e) ؛ E.PrintStackTrace () ؛ } // استخدم أخيرًا كتلة لإغلاق دفق الإدخال أخيرًا {try {if (in! = null) {in.close () ؛ }} catch (استثناء e2) {e2.printStackTrace () ؛ }} نتيجة الإرجاع ؛ } /** * أرسل طلبًا إلى url المحدد * url url * url لإرسال طلب * param param * المعلمة ، يجب أن تكون معلمة الطلب في نموذج name1 = value1 & name2 = value2. * param isproxy * ما إذا كنت تريد استخدام وضع الوكيل * return نتيجة للموارد عن بُعد التي يمثلها @regurn */ sendpost static sendpost (url string ، سلسلة param ، isproxy boolean) {outputStreamWriter out = null ؛ BufferedReader في = فارغة ؛ نتيجة السلسلة = "" ؛ حاول {url realurl = url new (url) ؛ httpurlConnection conn = null ؛ if (isProxy) {// استخدم الوضع proxy @suppresswarnings ("static-access") proxy proxy = new proxy (proxy.type.direct.http ، new inetsocketaddress (proxyhost ، proxyport)) ؛ conn = (httpurlConnection) realurl.openconnection (proxy) ؛ } آخر {conn = (httpurlConnection) realurl.openconnection () ؛ } // افتح الاتصال بعنوان URL // لإرسال طلب نشر ، يجب عليك تعيين الخطين التاليين conn.setDoOutput (true) ؛ conn.setDoInput (صواب) ؛ Conn.SetRequestMethod ("post") ؛ // post method // قم بتعيين سمة الطلب العام conn.setRequestProperty ("قبول" ، "*/*") ؛ Conn.SetRequestProperty ("connection" ، "keep-alive") ؛ Conn.SetRequestProperty ("Asser-Agent" ، "Mozilla/4.0 (متوافق ؛ MSIE 6.0 ؛ Windows NT 5.1 ؛ SV1)") ؛ Conn.SetRequestProperty ("نوع المحتوى" ، "التطبيق/X-WWW-Form-urlencoded") ؛ conn.connect () ؛ // احصل على دفق الإخراج المقابل لكائن urlConnection Out = new OutputStreamWriter (conn.getOutputStream () ، "UTF-8") ؛ // إرسال المعلمة طلب Out.write (param) ؛ // buffered Out.flush () من دفق الإخراج Flush ؛ . خط السلسلة بينما ((line = in.readline ())! = null) {result += line ؛ }} catch (استثناء e) {system.out.println ("إرسال منشور هناك استثناء في الطلب!"+e) ؛ E.PrintStackTrace () ؛ } // استخدم الكتل أخيرًا لإغلاق دفق الإخراج ودفق الإدخال أخيرًا {try {if (out! = null) {out.close () ؛ } if (in! = null) {in.close () ؛ }} catch (ioException ex) {ex.printStackTrace () ؛ }} نتيجة الإرجاع ؛ } الفراغ الثابت العام (String [] args) {// Demo: Agent Access String url = "http://api.adf.ly/api.php" ؛ String para = "key = youkekeid & youuid = uid & addr_type = int & domain = adf.ly & url = http: //somewebsite.com" ؛ String sr = httprequestutil.sendpost (url ، para ، true) ؛ system.out.println (sr) ؛ }}آمل أن يكون هذا المقال مفيدًا للجميع لتعلم برمجة Java.