상세 컨텐츠

본문 제목

영화정보조회앱 - 1. HTTP 요청

안드로이드

by aries574 2020. 3. 15. 22:14

본문


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 데이터를 다뤄보기로 한다.


반응형

관련글 더보기

댓글 영역