안드로이드에서 외부 DB
안드로이드는 기본적으로 외부DB와 직접 연결할 수 없다.
나는 차장님 서버에 데이터를 담아놨는데 이걸 이용하기 위해선
중간에 매개체 역할이 필요하다.
나는 RESTController를 활용하여 나의 AWS서버에 서비스하여 안드로이드에서 AWS 서버로 요청을
보낼것이고 AWS서버에서는 차장님서버에 요청을하여 DB내용을 가져올 것이다.
따라서 그림은 없지만 글로설명하자만
안드로이드(클라이언트) ------> AWS서버(API서버) ---------> 차장님 서버(DB서버)
이런식으로 데이터가 왔다갔다 할 것이다.
Volley 다운받기
gradle에 다음 내용을 추가한다.
compile group: 'com.android.volley', name: 'volley', version: '1.0.0'
기본적인 Volley 사용법
public void sendRequest(){
// Request를 보낼 queue를 생성한다. 필요시엔 전역으로 생성해 사용하면 된다.
RequestQueue queue = Volley.newRequestQueue(this);
String url ="http://172.30.1.27:8081/busApi.do";
// StringRequest를 보낸다.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
text.setText("Response is: "+ response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
text.setText("That didn't work!");
}
});
// RequestQueue에 현재 Task를 추가해준다.
queue.add(stringRequest);
}
위 메소드는 url에 적혀있는 곳으로 GET방식으로 요청을 할 것이고 성공했을때는 onResponse 메서드를
실행하고, 실패시 onErrorResponse를 실행한다.
Ajax로 통신하는것과 비슷하다.
Volley외에도 통신을 도와주는 라이브러리는 많지만 Volley가 편하다고 한다.