정말 귀찮은게 자바는 다 객체를 만들어서 담는 귀찮은 작업이 들어갑니다 ... 심지어 JSON 객체라면 .... 근데 속성이 많다면??? 왜 자바가 JSON 파싱하기 어려운지 진짜진짜진짜 뼈저리게 느끼는 중이랄 까 .... 이럴땐 참 자바스크립트로 백엔드를 갈아치우고 싶다는 충동이 올라오는데 ....
아무튼!!! 요청을 보내야 합니다. 이번에 OCR 사용하려고 API를 보내야해서 주저리주저리 찾아봤는데 처음에 찾은게 참 정말 귀찮은 방법이었어서.... 간단한 방법을 한참 뒤에야 찾아서 .............
나처럼 삽질하지 말고 바로 간단한 코드로 뚝딱! 사용하란 뜻에서 적어보는 포스팅
네 정말 귀찮습니다 .... 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);
이렇게 작성합니다!
위 코드에 비하면 정말 간단합니다! 그리고 비동기 처리도 한방에 해주고요
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 최고!