この記事では、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; import java.util.list; import java.util.map; /** * http要求ツールクラス * @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"; static int proxyport = 8087; / ** * encoding * @param source * @return */ public static string urlencode(string source、string encode){string result = source; try {result = java.net.urlencoder.encode(source、encode); } catch(unsupportedencodingexception e){e.printstacktrace(); 「0」を返します。 } return result; } public static string urlencodegbk(string source){string result = source; try {result = java.net.urlencoder.encode(source、 "gbk"); } catch(unsupportedencodingexception e){e.printstacktrace(); 「0」を返します。 } return result; } / *** return resultを取得するHTTP要求を開始* @param req_url requestアドレス* @return* / public static string httprequest(string req_url){stringbuffer buffer = new StringBuffer(); {url url = new url(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 = new inputStreamReader(inputStream、 "utf-8"); BufferedReader bufferedReader = new BufferedReader(inputStreamReader);文字列str = null; while((str = bufferedreader.readline())!= null){buffer.append(str); } bufferedreader.close(); inputStreamReader.Close(); //リソース入力stream.close()をリリースします。 inputstream = null; httpurlconn.disconnect(); } catch(Exception e){System.out.println(e.getStacktrace()); } return buffer.toString(); } / *** httpリクエストを送信して返された入力ストリームを取得します* @param requesturl requestアドレス* @return inputstream* / public static inputstream httprequestio(string requesturl){inputstream inputstream = null; try {url url = new url(requesturl); httpurlconnection httpurlconn =(httpurlconnection)url.openconnection(); httpurlconn.setDoinput(true); httpurlconn.setRequestMethod( "get"); httpurlconn.connect(); //返されたinputstream = httpurlconn.getInputStream()を取得します。 } catch(Exception e){e.printstacktrace(); } inputstreamを返します。 } /** *指定されたurlにリクエストを送信 * * @param url * url * @param param *リクエストパラメーターを送信するには、リクエストパラメーターはname1 = value1&name2 = value2の形式である必要があります。 * @return url response rexime resime resumped remite resourceで表されるリモートリソースの結果bufferedreader in = null; try {string urlnamestring = url + "?" + param; url realurl = new url(urlnamestring); // url urlconnection connection = realur.openconnection()間の接続を開きます。 //一般リクエスト属性connection.setRequestProperty( "Accept"、 "*/*"); connection.setRequestProperty( "Connection"、 "Keep-Alive"); connection.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); //実際の接続connection.connect(); //すべての応答ヘッダーフィールドマップ<文字列、リスト<文字列>> map = connection.getheaderfields(); //すべての応答ヘッダーフィールド(文字列キー:map.keyset()){system.out.println(key + "--->" + map.get(key)); } // bufferedreader入力ストリームを定義して、urlの応答を読み取ります= new BufferedReader(new inputstreamReader(connection.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){system.out.println( "get要求を送信するときに例外が発生しました!" + e); e.printstacktrace(); } //最終的にブロックを使用して入力ストリームを閉じます{if(in!= null){in.close(); }} catch(例外E2){e2.printstacktrace(); }} return result; } /** *指定されたurl * @param url * urlにリクエストを送信してリクエストを送信します * @param param *リクエストパラメーター、要求パラメーターはname1 = value1&name2 = value2の形式である必要があります。 * @param isproxy *プロキシモードを使用するかどうか * @return応答@returnに表されるリモートリソースの結果bufferedreader in = null;文字列結果= ""; try {url realurl = new URL(url); httpurlconnection conn = null; if(isproxy){// proxyモード@suppresswarnings( "static-access")proxy proxy = new proxy(proxy.type.direct.http、new inetsocketaddress(proxyhost、proxyport)); conn =(httpurlconnection)realurr.openconnection(proxy); } else {conn =(httpurlconnection)realurr.openconnection(); } // urlへの接続を開き// postリクエストを送信するには、次の2行を設定する必要があります。 conn.setDoinput(true); conn.setRequestMethod( "post"); //投稿方法//一般リクエスト属性conn.setRequestProperty( "Accept"、 "*/*"); conn.setRequestProperty( "Connection"、 "Keep-Alive"); conn.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); conn.setRequestProperty( "content-type"、 "application/x-www-form-urlencoded"); conn.connect(); // urlconnectionオブジェクトに対応する出力ストリームを取得= new outputStreamWriter(conn.getOutputStream()、 "utf-8"); //リクエストパラメーターを送信してください。Write(PARAM); //フラッシュ出力ストリームのbuffered out.flush(); // bufferedReader入力ストリームを定義して、URL応答を読み取ります= new BufferedReader(new inputStreamReader(conn.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){System.out.println( "要求に例外があります!"+e); e.printstacktrace(); } //最終的にブロックを使用して出力ストリームを閉じ、入力ストリームは最終的に{if(out!= null){out.close(); } if(in!= null){in.close(); }} catch(ioException ex){ex.printstacktrace(); }} return result; } public static void main(string [] args){// demo:エージェントアクセスstring url = "http://api.adf.ly/api.php"; string para = "key = youkeyid&youuid = uid&advert_type = int&domain = adf.ly&url = http://somewabsite.com";文字列sr = httprequestutil.sendpost(url、para、true); System.out.println(sr); }}この記事がJavaプログラミングを学ぶのに役立つことを願っています。