공공 API 요청 및 출력 -3-
지난 포스팅에서 인증키에 해당하는 url을 객체에 집어넣고 통신할 수 있게끔 하는 URLConnection
객체를 리턴해서 이를 통해 실제 접속하는 것까지 해보았다. (response code가 200이 뜨는 것으로 검증)
그렇다면 이제 인증키에 해당하는 API문서 내용을 이클립스 콘솔에 출력해보자.
ApiJson.java
package data.api.json;
import java.io.BufferedReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class ApiJson {
public static void main(String[] args) {
BufferedReader br = null; // ---> 1.
try { // ---> 2.
String urlStr = "http://apis.data.go.kr/B552061/jaywalking/getRestJaywalking?serviceKey=3OV9AWAJeu0xZpMYtAEE4n9ALJxdXVbHzzrzdW1W%2BeQxc6O0nCihEK90fEg2%2BlBuLY%2BOwQQZTV6OXgFzcBKfFQ%3D%3D&searchYearCd=2017&siDo=11&guGun=680&type=json&numOfRows=10&pageNo=1";
// ---> 3.
URL url = new URL(urlStr); // ---> 4.
HttpURLConnection urlConn = (HttpURLConnection)url.openConnection();
// ---> 5.
urlConn.setRequestMethod("GET");
urlConn.setRequestProperty("Content-type", "application/json");
System.out.print("Response code:" + urlConn.getResponseCode());
// ---> 6.
br = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8"));
// ---> 7.
/* ---> 8.
String rst="";
String line;
while((line = br.readLine())!=null) {
rst += line + "\n";
}
System.out.println(rst);
*/
// ---> 9.
StringBuilder sb = new StringBuilder ();
String line;
while ((line = br.readLine())!= null) {
sb.append(line);
}
System.out.println(sb.toString());
// ---> 10.
br.close();
urlConn.disconnect();
}
catch(Exception e) {
System.out.println(e.getMessage());
}
}
}
< 코드 설명 > (주석처리된 넘버 참조)
1 ~ 6. 지난 포스팅을 참조.
- 우리는 위에서 Buffer를 사용할 수 있게끔 만들어 놓았다. 이를 사용해보자. (BufferedReader함수)
BufferedReader
함수는InputStreamReader
의 객체를 입력값으로 사용한다. 따라서InputStreamReader
object를 new로 생성한 것이다. - 결과를 출력하기 위해 변수를 선언하고
while
반복문으로 읽어 사용한다. 그러나 우리는 이 방식을 사용하지않고 다음 9번의 방식을 사용할 것이다. - 지난 포스팅에서 언급했듯 그냥
String
객체를 사용하는 것보다StringBuilder
를 사용하는 것이 여러모로 장점이 많다. - 통신이 끝나면 연결을 해제한다.
이제 실제로 코드를 실행해보면,
Response code
와StringBuilder
를 while문으로 print한 결과가 나온다. API json의 내용이 출력된 것을 확인할 수 있다.
Author And Source
이 문제에 관하여(공공 API 요청 및 출력 -3-), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjh950330/공공-API-요청-및-출력-3-저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)