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);