Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- livedatam
- firebase
- Job
- Android
- 빈
- jobdispatcher
- 검사
- jobschduler
- epmty
- Service
- Library
- alarmanager
- workmanager
- PHP
- shceduler
- schedule
- Background
Archives
- Today
- Total
에몽이
Apache HttpComponents를 이용한 GET, POST 요청하기 본문
왠지 도움이 될것 같은 느낌이 든다면 공감을 *(-_-)*
예전에는 Jakarta Commons HttpClient 프로젝트로 commons 프로젝트들이랑 옹기종기 같이 모여 있었는데 문득 사이트에 가보니
프로젝트명이 Apache HttpComponents 로 바껴있고 라이브러리 사용하는 것도 훅 달라진것 같았다.
테스트겸 겸사겸사 GET, POST 요청을 하는 클래스를 맹글어 보았다.
소스코드
라이브러리 다운로드는 http://hc.apache.org/downloads.cgi 요기에 가서 다운로드 받던지
Maven을 사용하고 있다면 디펜던시에
요걸 추가해 주면 된다.
그리고~ http://hc.apache.org/downloads.cgi 요기에서 다운받아 보면 압축파일안에 examples, tutorial, api 문서도 같이 들어 있어서 참고하기 좋다~
※ 위 예제를 실행하기 위해서 꼭 필요한 jar 파일은 httpclient-4.1.2.jar, httpcore-4.1.2.jar, commons-codec-1.4.jar, commons-logging-1.1.1.jar
요것들 4개고 모두 lib 디렉토리 안에 들어 있음.
프로젝트명이 Apache HttpComponents 로 바껴있고 라이브러리 사용하는 것도 훅 달라진것 같았다.
테스트겸 겸사겸사 GET, POST 요청을 하는 클래스를 맹글어 보았다.
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 | package proxy; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.ResponseHandler; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.impl.client.BasicResponseHandler; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; public class HttpProxy { /** * POST 요청 * @param url 요청할 url * @param params 파라메터 * @param encoding 파라메터 Encoding * @return 서버 응답결과 문자열 */ public String post(String url, Map params, String encoding){ HttpClient client = new DefaultHttpClient(); try { HttpPost post = new HttpPost(url); System.out.println( "POST : " + post.getURI()); List<NameValuePair> paramList = convertParam(params); post.setEntity( new UrlEncodedFormEntity(paramList, encoding)); ResponseHandler<String> rh = new BasicResponseHandler(); return client.execute(post, rh); } catch (Exception e){ e.printStackTrace(); } finally { client.getConnectionManager().shutdown(); } return "error" ; } public String post(String url, Map params){ return post(url, params, "UTF-8" ); } /** * GET 요청 * POST 와 동일 */ public String get(String url, Map params, String encoding){ HttpClient client = new DefaultHttpClient(); try { List<NameValuePair> paramList = convertParam(params); HttpGet get = new HttpGet(url+ "?" +URLEncodedUtils.format(paramList, encoding)); System.out.println( "GET : " + get.getURI()); ResponseHandler<String> rh = new BasicResponseHandler(); return client.execute(get, rh); } catch (Exception e){ e.printStackTrace(); } finally { client.getConnectionManager().shutdown(); } return "error" ; } public String get(String url, Map params){ return get(url, params, "UTF-8" ); } private List<NameValuePair> convertParam(Map params){ List<NameValuePair> paramList = new ArrayList<NameValuePair>(); Iterator<String> keys = params.keySet().iterator(); while (keys.hasNext()){ String key = keys.next(); paramList.add( new BasicNameValuePair(key, params.get(key).toString())); } return paramList; } // Test public static void main(String[] args) { HttpProxy p = new HttpProxy(); Map params = new HashMap(); params.put( "w" , "tot" ); params.put( "q" , "한예슬" ); } } |
라이브러리 다운로드는 http://hc.apache.org/downloads.cgi 요기에 가서 다운로드 받던지
Maven을 사용하고 있다면 디펜던시에
1 2 3 4 5 | < dependency > < groupId >org.apache.httpcomponents</ groupId > < artifactId >httpclient</ artifactId > < version >4.1.2</ version > </ dependency > |
그리고~ http://hc.apache.org/downloads.cgi 요기에서 다운받아 보면 압축파일안에 examples, tutorial, api 문서도 같이 들어 있어서 참고하기 좋다~
※ 위 예제를 실행하기 위해서 꼭 필요한 jar 파일은 httpclient-4.1.2.jar, httpcore-4.1.2.jar, commons-codec-1.4.jar, commons-logging-1.1.1.jar
요것들 4개고 모두 lib 디렉토리 안에 들어 있음.
출처: http://stove99.tistory.com/26 [스토브 훌로구]
'java' 카테고리의 다른 글
Java Annotation: 인터페이스 강요로부터 자유를… (0) | 2017.07.04 |
---|---|
우분투투 자바 컴파일하기 (0) | 2017.06.30 |
netty 재연결코드 (0) | 2017.06.30 |
이클립스 외부 jar 추가 (0) | 2017.01.03 |
HttpURLConnection 클래스 - URL 요청후 응답받기 ( GET방식, POST방식 ) [출처] [Java] HttpURLConnection 클래스 - URL 요청후 응답받기 ( GET방식, POST방식 )|작성자 자바킹 (1) | 2017.01.03 |
Comments