티스토리 뷰

반응형

 

이번 페이지에서는 Apache에서 제공하고 있는 HttpClient 라이브러리를 이용해 REST API를 호출하는 방법을 알아보자.

 

[GET]

public void get(String requestURL) {
 try {
     HttpClient client = HttpClientBuilder.create().build(); // HttpClient 생성
     HttpGet getRequest = new HttpGet(requestURL); //GET 메소드 URL 생성
     getRequest.addHeader("x-api-key", RestTestCommon.API_KEY); //KEY 입력

     HttpResponse response = client.execute(getRequest);

     //Response 출력
     if (response.getStatusLine().getStatusCode() == 200) {
         ResponseHandler<String> handler = new BasicResponseHandler();
         String body = handler.handleResponse(response);
         System.out.println(body);
     } else {
         System.out.println("response is error : " + response.getStatusLine().getStatusCode());
     }

  } catch (Exception e){
     System.err.println(e.toString());
  }
 }

[POST]

public void post(String requestURL, String jsonMessage) {
     try {
         HttpClient client = HttpClientBuilder.create().build(); // HttpClient 생성
         HttpPost postRequest = new HttpPost(requestURL); //POST 메소드 URL 새성 
         postRequest.setHeader("Accept", "application/json");
         postRequest.setHeader("Connection", "keep-alive");
         postRequest.setHeader("Content-Type", "application/json");
         postRequest.addHeader("x-api-key", RestTestCommon.API_KEY); //KEY 입력 
         //postRequest.addHeader("Authorization", token); // token 이용시

         postRequest.setEntity(new StringEntity(jsonMessage)); //json 메시지 입력 

         HttpResponse response = client.execute(postRequest);

         //Response 출력
         if (response.getStatusLine().getStatusCode() == 200) {
             ResponseHandler<String> handler = new BasicResponseHandler();
             String body = handler.handleResponse(response);
             System.out.println(body);
         } else {
             System.out.println("response is error : " + response.getStatusLine().getStatusCode());
         }
     } catch (Exception e){
         System.err.println(e.toString());
     }
 }

 

• HttpClient client = HttpClientBuilder.create().build(); 여기 HttpClient 인스턴스 생성부는 위에서는 각각 구현하였지만 개발하실 때는 한번만 생성하시고 재활용 하면 됩니다.

HttpURLConnection보다는 확실히 구현은 쉬웠습니다. HttpGet, HttpPost와 같이 Method를 직관적으로 생성하여 사용함으로 가독성도 올라간 것 같습니다. 그래도 뭔가 더 간단하고 심플하게 구현할 수 있었으면 좋겠다라는 아쉬움이 남습니다. 만약 위 코드를 비동기적으로 처리해야 하는 상황이라면 개발자들의 추가 작업이 필요해 보입니다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
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
글 보관함