HttpClient
Designed for extension while providing robust support for the base HTTP protocol, HttpClient may be of interest to anyone building HTTP-aware client applications such as web browsers, web service clients, or systems that leverage or extend the HTTP protocol for distributed communication.
기본적인 http 프로토콜에 대한 여러 기능들을 제공해줌과 동시에 httpClient 는 웹 브라저, 웹 서비스 클라이언트 그리고 또는 분산 처리 시스템을 이용하려는 사람에게 유용하다. 결국 HttpClient 는 클라이언트 측(ClientSide), http 전송 라이브러리이다. 웹 서비스간 Http 프로토콜을 통해서 메시지를 송수신하는 것이 주된 목적이다.
기본적으로 메이븐에 아래와 같이 추가한다. 메이븐을 사용하지 않는 사람이라면 해당 사이트에 들어가서 직접 라이브러리를 다운받아 본인 작업 환경에 추가한다.
1. 직접 다운로드
2. 메이븐 추가
1 2 3 4 5 6 | <!-- HttpClient 라이브러리 설정 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.3.6</version> </dependency> | cs |
또는
1 2 3 4 5 | <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.4</version> </dependency> | cs |
기본적인 사용법 (GET 방식)
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 | public String useHttpClient(String url) { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpGet httpGet = new HttpGet(url); httpGet.setHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); // UTF-8 CloseableHttpResponse httpResponse; InputStreamReader isr = null; BufferedReader br = null; // 한 줄씩 읽기 위함 String inputLine; StringBuffer response = null; try { httpResponse = httpClient.execute(httpGet); isr = new InputStreamReader(httpResponse.getEntity().getContent()); br = new BufferedReader(isr); // 한 줄씩 읽기 위함 response = new StringBuffer(); while ((inputLine = br.readLine()) != null) { response.append(inputLine); } br.close(); httpClient.close(); } catch (IOException e) { e.printStackTrace(); } return response.toString(); } | cs |
기본적인 사용법 (POST 방식)
추가로 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 | public String useHttpClient(String url) { CloseableHttpClient httpClient = HttpClients.createDefault(); HttpPost httpPost = new HttpPost(url); // parameter 추가 List<NameValuePair> list = new ArrayList<NameValuePair>(); list.add(new BasicNameValuePair("paramKey1", new String("Banana")); list.add(new BasicNameValuePair("paramKey2", new String("Tomato")); list.add(new BasicNameValuePair("paramKey3", new String("Apple")); // 응답 CloseableHttpResponse httpResponse = null; BufferedReader br = null; try { // 한글 처리 및 POST 방식 파라미터 추가. HttpEntity postParams = new UrlEncodedFormEntity(list, "UTF-8"); httpPost.setEntity(postParams); httpResponse = httpClient.execute(httpPost); br = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); // 한줄한줄 읽기 response = new StringBuffer(); while ((inputLine = br.readLine()) != null) { response.append(inputLine); } br.close(); httpClient.close(); } catch (IOException e) { e.printStackTrace(); } return response.toString(); } | cs |
자세한 내용은 참고링크의 튜토리얼을 보면서 익혀나가면 된다.
'Spring > Spring Framework 참고 내용' 카테고리의 다른 글
20180325 스프링에서 사용자 IP 가져오는 방법 (0) | 2018.03.25 |
---|---|
20180311 mybatis #{} ${} 이해. (0) | 2018.03.11 |
20180302 Difference Between URI & URL & URN (0) | 2018.03.02 |
20180227 스프링 mapper.xml 에서 <![CDATA[ ~ ]]> 쓰는 이유. (0) | 2018.02.27 |
20180202 스프링을 개발하면서 알게 된 내용 2 (0) | 2018.02.02 |