[java] url로 json 값 가져오기.
java URL로 json 값을 가져오겠습니다.
1. 특정 json 값을 가져올 수 있는 url이 존재해야합니다.
# soundcloud에서 Json 값을 가져오 겠습니다.
http://soundcloud.com/oembed?url=http%3A//soundcloud.com/forss/flickermood&format=json
String getJson = callURL("http://soundcloud.com/oembed?url=http%3A//soundcloud.com/forss/flickermood&format=json");
# URL 접속시 Json 값을 가져옵니다.
2. Json 읽어오기 위해서 특별한 Class를 생성하고, 메소드로 callURL 메소드를 생성합니다. 여기서 빠르게 처리하기 위해서 "static"으로 만들었음을 주의하세요.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.Charset;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
public class JsonReader {
public static String callURL(String myURL) {System.out.println("Requeted URL:" + myURL);
StringBuilder sb = new StringBuilder();
URLConnection urlConn = null;
InputStreamReader in = null;
//error : Caused by: javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified:
HostnameVerifier allHostsValid = new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
//특정 hostname만 승인을 해주는 형태
return true;
}
};
//
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
try {
URL url = new URL(myURL);
urlConn = url.openConnection();
if (urlConn != null)
urlConn.setReadTimeout(60 * 1000);
if (urlConn != null && urlConn.getInputStream() != null) {
in = new InputStreamReader(urlConn.getInputStream(), Charset.defaultCharset());
//charset 문자 집합의 인코딩을 사용해 urlConn.getInputStream을 문자스트림으로 변환 객체를 생성.
BufferedReader bufferedReader = new BufferedReader(in);
//주어진 문자 입력 스트림 inputStream에 대해 기본 크기의 버퍼를 갖는 객체를 생성.
if (bufferedReader != null) {
int cp;
while ((cp = bufferedReader.read()) != -1) {
sb.append((char) cp);
}
bufferedReader.close();
}
}
in.close();
} catch (Exception e) {
throw new RuntimeException("Exception URL:"+ myURL, e);
}
return sb.toString();
}
}
3. 결과화면
받은 문자를 json으로 확인.
'[java]' 카테고리의 다른 글
[Java]오늘 날짜 와 시간 표현하기 (0) | 2019.06.16 |
---|---|
[java] gson 파싱(parse) double형 Int형 문제 (2) | 2019.01.02 |
[java] javax.net.ssl.SSLPeerUnverifiedException: Hostname not verified: (0) | 2018.12.26 |
파파고 NMT 테스트 / JSP로 해보기 (0) | 2018.10.05 |
[java] object 통한 getClass()를 사용하여 데이터 알아내기 (0) | 2018.09.30 |