본문 바로가기

JAVA

[JAVA] HttpClient로 REST API 호출하기

728x90
반응형

 

이번 페이지에서는 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를 직관적으로 생성하여 사용함으로 가독성도 올라간 것 같습니다. 그래도 뭔가 더 간단하고 심플하게 구현할 수 있었으면 좋겠다라는 아쉬움이 남습니다. 만약 위 코드를 비동기적으로 처리해야 하는 상황이라면 개발자들의 추가 작업이 필요해 보입니다.

Http Client 다른 솔루션 참고 링크 

WebClient : https://digitalbourgeois.tistory.com/122

 

[JAVA] WebClient 사용법 알아보기! 간단 예제 포함!

Spring Boot에서 WebClient는 비동기식 HTTP 요청을 처리하기 위해 사용되는 클라이언트입니다. WebClient는 Spring 5에서 도입된 새로운 HTTP 클라이언트로, RestTemplate의 대체제로 설계되었습니다. WebClient는

digitalbourgeois.tistory.com

RestTemplate : https://digitalbourgeois.tistory.com/120

 

[JAVA] RestTemplate 개념 알아보기! 간단 예제 포함!

RestTemplate은 스프링 프레임워크에서 제공하는 HTTP 클라이언트 템플릿 클래스입니다. RESTful API를 소비하는 데 유용한 도구로서, 다음과 같은 다양한 기능을 제공합니다.구분내용간편한 HTTP 요청

digitalbourgeois.tistory.com

OkHttp : https://digitalbourgeois.tistory.com/59

 

[JAVA] OkHttp로 REST API 호출하기

Android에서 많이 사용하고 있는 OkHttp에 대해 알아보자. OkHttp는 Square에서 제공하는 오픈소스 프로젝트이며 동기, 비동기 방식을 각각 제공해줌으로서 개발자가 선택하여 사용할 수 있다. [GET 동기

digitalbourgeois.tistory.com

HttpURLConnection : https://digitalbourgeois.tistory.com/57

 

[JAVA] HttpURLConnection로 REST API 호출하기

이번 페이지에서는 HttpURLConnection을 이용해 REST API를 호출하는 방법을 알아보자. [GET] public void get(String strUrl) { try { URL url = new URL(strUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setConne

digitalbourgeois.tistory.com

 

 

728x90
반응형