Volley - sejinq/HelloStranger GitHub Wiki

안드로이드 데이터 가져오기


## 안드로이드 기본 제공 HttpRequest
## 구글 제공 volley
## square사 제공 Retrofit

### volley 사용하기

Volley는 Http 클라이언트 라이브러리가 제공하는 기능을 대부분 제공하면서도 용량이 작다.



### 1. 인터넷 permission uses-permission android:name="android.permission.INTERNET"

### 2. build.gradle 추가
compile 'com.android.volley:volley:1.0.0'

### 3. sendRequest()
//json 파싱
//기본 서버 주소를 전역변수로 지정해 놓는다. 후에 여기에 value를 붙여서 sendRequest의 인자로 넘겨줌
>public static String SeverUrl ="https://hello-stranger-dobeeisfree.c9users.io/v1";
// 함수를 호출할 activity의 context, request를 요청할 url
>public static void sendRequest(Context context, String url){
// RequestQueue를 새로 만들어준다.
> RequestQueue queue = Volley.newRequestQueue(context);
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url,null,
                new Response.Listener<jsonobject>() {
                   @Override
                    public void onResponse(JSONObject response) {
                        try {
                           //후에 값을 파싱해서 저장할 class 객체들을 넣어준다.
                            String id = response.getString("id");
                            Log.e("id : ", id);
                            String name = response.getString("name");
                            Log.e("name : ", name);
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
               }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                testTextview.setText("That didn't work!");
            }
        });
        // queue에 Request를 추가해준다.
        queue.add(jsonObjectRequest);
    }



Request요청 후 답장이 온 데이터는 onResponse 함수의 인자값인 response에 저장된다. 파싱은 getString, getInt 등의 함수를 이용한다.
String id = response.getString("name"); JSONObject distance = response.getJSONObject("phone");
JsonArray이면 JsonArrayRequest 이용



### 4.sendRequest() 호출
//기본 서버 주소에 request할 값들 url에 붙여주기 String url = ServerRequest.SeverUrl; url += "/users/new?foreigners[name]=sejin";
    ServerRequest.sendRequest(this, url);
⚠️ **GitHub.com Fallback** ⚠️