티스토리 뷰
반응형
이번 페이지에서는 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를 직관적으로 생성하여 사용함으로 가독성도 올라간 것 같습니다. 그래도 뭔가 더 간단하고 심플하게 구현할 수 있었으면 좋겠다라는 아쉬움이 남습니다. 만약 위 코드를 비동기적으로 처리해야 하는 상황이라면 개발자들의 추가 작업이 필요해 보입니다.
반응형
'JAVA' 카테고리의 다른 글
[JAVA8] 함수형 인터페이스 정리 (0) | 2019.04.15 |
---|---|
[JAVA] OkHttp로 REST API 호출하기 (0) | 2019.01.18 |
[JAVA] HttpURLConnection로 REST API 호출하기 (0) | 2019.01.18 |
[JAVA] REST API Client Library 알아보기 in Java Project (0) | 2019.01.17 |
[JAVA 8] 메서드 레퍼런스 알아보기! (0) | 2018.09.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 교육
- Spring
- rest api
- http client
- 빅데이터
- HttpClient
- llm
- 데이터플랫폼설계
- HTTP
- API
- AWS
- java8
- SW
- 딥러닝
- 인공지능
- okhttp
- ai
- 텐서플로우
- tensorflow
- 데이터파이프라인
- Rest
- 데이터플랫폼
- 머신러닝
- 소프트웨어교육
- 프로그램
- 소프트웨어
- Java
- mlops
- it
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함