728x90
안녕하세요 이번 포스팅은 공공데이터 포탈 api 사용방법을 알아보겠습니다
먼저 데이터 포털로 들어갑니다
https://www.data.go.kr/index.do
회원가입은 필수인 것 아시죠?
로그인 후 원하는 데이터를 검색하여봅니다.
상세 기능을 볼 수 있으며 해당 페이지에서 요청 변수를 확인해 주세요.
저희는 홈페이지에 나와있는 샘플 코드를 이용해 볼 거예요
활용신청을 눌러주세요
간단히 신청양식을 작성해 주세요
마이페이지를 들어가시면 신청한 데이터 이름이 뜹니다
클릭 시 상세 보기에서 부여된 인증키를 확인할 수 있습니다.
미리 보기 데이터가 제공되며 해당 url로 들어가면 제공되는 데이터를 확인할 수 있습니다.
Java
public class threeActivity extends AppCompatActivity {
//변수 serviceKey에 인증키를 넣어줍니다
String key = "Your key";
TextView text;
String string_data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
text=findViewById(R.id.text);
new Thread(new Runnable() {
@Override
public void run() {
try {
string_data =data();
runOnUiThread(new Runnable() {
@Override
public void run() {
text.setText(string_data);
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
String data() throws IOException {
//각각의 정보를 넣어줍니다.
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/B550928/getLtcInsttDetailInfoService/getGeneralSttusDetailInfoItem"); /*URL*/
urlBuilder.append("?" + URLEncoder.encode("serviceKey", "UTF-8") + "=" + key); /* Service Key */
urlBuilder.append("&" + URLEncoder.encode("longTermAdminSym","UTF-8") + "=" + URLEncoder.encode("21130500195", "UTF-8")); /*장기요양기관코드*/
urlBuilder.append("&" + URLEncoder.encode("adminPttnCd","UTF-8") + "=" + URLEncoder.encode("B03", "UTF-8")); /*공통항목 코드 정의 기관유형코드 정의 참조*/
URL url = new URL(urlBuilder.toString());
//문자열로 된 요청 url을 URL 객체로 생성.
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
BufferedReader rd;
//getResponseCode가 200이상 300이하일때는 정상적으로 작동
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
System.out.println(sb.toString());
return sb.toString(); }
}
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".threeActivity">
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
실행결과
감사합니다.
'안드로이드 자바' 카테고리의 다른 글
[Java][Android] JAVA 1대 1 콘솔 채팅 (server 구현하기) (0) | 2022.03.22 |
---|---|
[Java][Android] 안드로이드 vector 이미지 취소선 추가 (0) | 2022.03.19 |
[Java][Android] 안드로이드 자바 스톱워치 구현 (0) | 2022.03.14 |
[Java][Android] 안드로이드 CircleImageView 사용해보기 (0) | 2022.03.13 |
[JAVA][Android] notification에 값 담아전달하기 (0) | 2022.03.12 |