JAVA로 Http 요청 보내기

Seokjun Moon·2023년 9월 10일
0

삽질로그

목록 보기
6/10

API를 써야하면 말이죠

정말 귀찮은게 자바는 다 객체를 만들어서 담는 귀찮은 작업이 들어갑니다 ... 심지어 JSON 객체라면 .... 근데 속성이 많다면??? 왜 자바가 JSON 파싱하기 어려운지 진짜진짜진짜 뼈저리게 느끼는 중이랄 까 .... 이럴땐 참 자바스크립트로 백엔드를 갈아치우고 싶다는 충동이 올라오는데 ....

아무튼!!! 요청을 보내야 합니다. 이번에 OCR 사용하려고 API를 보내야해서 주저리주저리 찾아봤는데 처음에 찾은게 참 정말 귀찮은 방법이었어서.... 간단한 방법을 한참 뒤에야 찾아서 .............

나처럼 삽질하지 말고 바로 간단한 코드로 뚝딱! 사용하란 뜻에서 적어보는 포스팅

1번

네 정말 귀찮습니다 .... HttpURLConnection 을 이용하는 방법인데요, 코드 보면서 합시다

코드

URL url = new URL(API_END_POINT);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestProperty("Content-Type", "application/json;");
connection.setRequestProperty("Ocp-Apim-Subscription-Key", SUBSCRIPTION_KEY);

이렇게 작성합니다!

2번

위 코드에 비하면 정말 간단합니다! 그리고 비동기 처리도 한방에 해주고요

코드

HttpClient client = HttpClient.newHttpClient();
HttpRequest httpRequest = HttpRequest.newBuilder()
        .uri(URI.create(operationLocationURL))
        .GET()
        .header("Ocp-Apim-Subscription-Key", SUBSCRIPTION_KEY)
        .header("Content-Type", "application/json;")
        .build();
responseBody = client
		.sendAsync(httpRequest, ofString())
        .thenApply(HttpResponse::body)
        .get();

이렇게 작성하면 무려 요청과 응답 코드를 문자열로 반환까지 한방에!

하지만 저희에게는 JSON 파싱이란 귀찮은 작업이 남아있긴 하지만 ..... 이거도 간단히 해주는 라이브러리는 없나 찾아봐야겠다

정리해보자면

HttpClient 최고!

profile
차근차근 천천히

0개의 댓글