open api를 이용하여 영화정보를 가져오는 앱을
만들어보려고 한다.
영화관입장권통합전상망 사이트에서 api를 제공해 준다.
http://www.kobis.or.kr/kobisopenapi
안드로이드 스튜디오를 사용하여 만들기로 한다.
1. 프로젝트를 만든다.
2. 웹요청을 하기 위한 라이브러리 추가 및 권한추가를
해준다.
3. manifests 폴더 -> AndroidManifest.xml
인터넷에 접속하기 위해서는 권한을 지정해줘야 한다.
<uses-permission android:name="android.permission.INTERNET"/>
application 태그 안에 추가
android:usesCleartextTraffic="true"
application 태그 안에 추가
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
Gradle Scripts -> build.gradle(Moudle:app) 에 추가
implementation 'com.android.volley:dc-volley:1.1.0'
4. activity_main.xml 에 버튼과 텍스트뷰를 추가 한다.
<Button
android:id="@+id/searchBtn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/showText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
</ScrollView>
5. MainActivity 기능구현
TextView showText;
static RequestQueue requestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
showText = findViewById(R.id.showText);
Button searchBtn = findViewById(R.id.searchBtn);
searchBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
makeRequest();
}
});
if(requestQueue == null){
requestQueue = Volley.newRequestQueue(getApplicationContext()); //RequestQueue객체 생성
}
}
private void makeRequest() {
String yesterDt = "20200314";
String url = "http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key= http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=430156241533f1d058c603178cc3ca0e&targetDt=&targetDt="+ yesterDt;
StringRequest request = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
println("응답 -> " + response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
println("에러 -> " + error.getMessage());
}
}
)
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
return params;
}
};
request.setShouldCache(false);
requestQueue.add(request);
println("요청 보냄");
}
public void println(String data){
// Log.d("Main", data);
showText.append(data + "\n");
}
url속 key값은 테스트용이며, 사용자가 사이트에 등록하고 발급받을 수 있다.
6. 실행 시킨 후 버튼을 누르면 json형식으로 데이터를 받아오는 걸 볼 수 있다.
다음 시간은 받아온 json 데이터를 다뤄보기로 한다.
카카오지도 hashkey 가져오기 (0) | 2020.03.18 |
---|---|
영화정보조회앱 - 2. JSON 다루기 (0) | 2020.03.16 |
첫 안드로이드 개발과 등록 (0) | 2020.03.08 |
안드로이드 9 파이에서 Http 사용시 에러 (0) | 2020.02.09 |
안드로이드 스튜디오 개발 오류 - Volley (0) | 2020.02.09 |
댓글 영역