이 기사에서는 Java가 HTTP를 구현하기위한 Post, Get 및 프록시 액세스 요청의 자세한 코드 스 니펫을 설명합니다. 참조를 위해 귀하와 공유됩니다. 특정 내용은 다음과 같습니다
패키지 com.snowfigure.kits.net; import java.io.bufferedReader; import java.io.ioexception; import java.io.inputstream; import java.io.inputStreamReader; import java.io.outputStreamwriter; java.io.unsupportedencodingException 가져 오기; import java.net.httpurlConnection; import java.net.inetSocketAddress; java.net.proxy 가져 오기; import java.net.url; import 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; 정적 문자열 proxyHost = "127.0.0.1"; 정적 int proxyport = 8087; / ** * 인코딩 * @param 소스 * @return */ public static string urlencode (문자열 소스, 문자열 인코딩) {String result = source; {result = java.net.urlencoder.encode (source, encode); } catch (UnsupportedEncodingException e) {e.printstacktrace (); "0"을 반환합니다. } 반환 결과; } public static String urlencodegbk (문자열 소스) {문자열 result = source; try {result = java.net.urlencoder.encode (소스, "gbk"); } catch (UnsupportedEncodingException e) {e.printstacktrace (); "0"을 반환합니다. } 반환 결과; } / *** 반환 결과를 얻기위한 http 요청을 시작* @param req_url 요청 주소* @return* / public static string httprequest (String req_url) {StringBuffer buffer = new StringBuffer (); try {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 (); // resource inputStream.close ()를 해제합니다. inputStream = null; httpurlconn.disconnect (); } catch (예외 e) {System.out.println (e.getStackTrace ()); } return buffer.toString (); } / *** 반환 된 입력 스트림을 얻기 위해 HTTP 요청을 보내십시오* @param requesturl 요청 주소* @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 (); // retured inputStream = httpurlconn.getInputStream ()을 가져옵니다. } catch (예외 e) {e.printstacktrace (); } return inputStream; } /** * 지정된 URL * * @param url * URL에 요청을 보내 요청 * @param param * 요청 매개 변수를 보내려면 요청 매개 변수는 name1 = value1 & name2 = value2 형식이어야합니다. * 원격 자원으로 표시되는 원격 자원의 @return URL 응답 결과*/ public static string sendget (String URL, String Param) {String result = ""; 버퍼드 리더 in = null; {string urlnamestring = url + "?" + PARAM; url realurl = new URL (urlnamestring); // URL URLCONNECTION CONNECTION 사이의 연결을 엽니 다. = realUrl.openConnection (); // 일반 요청 속성을 설정합니다. Connection.setRequestProperty ( "Connection", "Keep-Alive"); Connection.setRequestProperty ( "사용자 에이전트", "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)); } // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL의 응답을 읽습니다 (new inputStreamReader (connection.getInputStream ())); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "GET 요청을 보낼 때 예외가 발생했습니다!" + e); e.printstacktrace (); } // 입력 스트림을 닫으려면 마지막으로 블록을 사용하여 마지막으로 {try {if (in! = null) {in.close (); }} catch (예외 e2) {e2.printstacktrace (); }} 반환 결과; } /** * 지정된 URL * @param url * URL에 요청을 보내 요청 * @param param * 요청 매개 변수, 요청 매개 변수는 name1 = value1 & name2 = value2의 형태 여야합니다. * @param isproxy * 프록시 모드 사용 여부 * @return 응답 @return */ public static string sendpost (String URL, String param, boolean isproxy) {outputStreamWriter out = null; 버퍼드 리더 in = null; 문자열 결과 = ""; try {url realurl = new URL (url); httpurlconnection conn = null; if (isproxy) {// 프록시 모드 @suppresswarnings ( "static-Access") 프록시 프록시 = 새로운 프록시 (proxy.type.direct.http, new inetSocketAddress (proxyHost, proxyport)); conn = (httpurlConnection) realurl.openConnection (proxy); } else {conn = (httpurlConnection) realurl.openConnection (); } // URL에 대한 연결을 엽니 다 // 게시물 요청을 보내려면 다음 두 줄을 설정해야합니다. conn.setdooutput (true); conn.setdoinput (true); conn.setRequestMethod ( "post"); // post method // 일반 요청 속성 설정 Conn.setRequestProperty ( "accept", "*/*"); Conn.setRequestProperty ( "Connection", "Keep-Alive"); Conn.setRequestProperty ( "사용자 에이전트", "Mozilla/4.0 (호환 가능; MSIE 6.0; Windows NT 5.1; Sv1)"); Conn.SetRequestProperty ( "Content-Type", "Application/X-www-form-urlencoded"); conn.connect (); // urlConnection 객체에 해당하는 출력 스트림을 가져옵니다. out = new outputStreamWriter (conn.getOutputStream (), "UTF-8"); // 요청 매개 변수를 보내십시오. out.write (param); // FLUSH OUTPUT 스트림의 FLUSH (); // 버퍼드 리더 입력 스트림을 정의하여 in = new bufferedReader에서 URL 응답을 읽습니다 (new inputStreamReader (conn.getInputStream ()); 문자열 라인; while ((line = in.readline ())! = null) {result += line; }} catch (예외 e) {System.out.println ( "Post 보내기 요청에 예외가 있습니다!"+e); e.printstacktrace (); } // 마침내 블록을 사용하여 출력 스트림을 닫고 입력 스트림을 마지막으로 {try {if (out! = null) {out.close (); } if (in! = null) {in.close (); }} catch (ioexception ex) {ex.printstacktrace (); }} 반환 결과; } public static void main (string [] args) {// 데모 : 에이전트 액세스 문자열 url = "http://api.adf.ly/api.php"; 문자열 para = "key = youkeyid & youuid = uid & advert_type = int & domain = adf.ly & url = http : //somewebsite.com"; 문자열 sr = httprequestutil.sendpost (url, para, true); System.out.println (SR); }}이 기사가 모든 사람이 Java 프로그래밍을 배우는 데 도움이되기를 바랍니다.