CLOVA OCR API로 배우는 API 호출 구조 (2)- HTTP response

이리·2024년 9월 14일
0
post-custom-banner

앞선 편에서 request 처리를 알아보았고 이제 response에 대해서 알아보겠다.


			int responseCode = con.getResponseCode();
			BufferedReader br;
			if (responseCode == 200) {
				br = new BufferedReader(new InputStreamReader(con.getInputStream()));
			} else {
				br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
			}
            

getResponseCode()

응답의 상태를 확인하기위해 응답 코드를 받는 부분이다.
응답코드는 크게 200(성공), 400번대(client 에러), 500(server 에러)으로 나뉜다.

InputStreamReader(con.getInputStream())

con.getInputStream()으로 응답으로부터 데이터를 읽어들일 스트림을 얻고, InputStreamReader를 통해 한 바이트씩 읽어들이게된다.

BufferedReader를 통해 내부적으로 버퍼를 사용하여 여러 바이트를 한꺼번에 읽어들여 성능을 더 효율적으로 만든다.
(BufferedReader의 내부 버퍼최대 크기: 8KB(8192 bytes))

			String inputLine;
			StringBuffer response = new StringBuffer();
			while ((inputLine = br.readLine()) != null) {
				response.append(inputLine);
			}
			br.close();

			System.out.println(response);
		} catch (Exception e) {
			System.out.println(e);
		}
	}

BufferedReader

BufferedReader의 경우 버퍼의 끝에 도달하면 BufferedReader.readLine()은 null을 반환하게된다.

이후 읽어들인 버퍼를 바탕으로 response 문자열에 추가하게된다.


Http request와 response측을 두부분으로 나누어서 코드를 분석해보려고했는데 response측이 상대적으로 많이 짧아 당황스럽다...
모쪼록 CLOVA OCR API를 사용하는 사람들에게 조금이나마 도움이 됐길바라며..👋🏻

post-custom-banner

0개의 댓글