Volley
Volley 라이브러리는 안드로이드 애플리케이션의 네트워킹을 위한 HTTP 라이브러리이다.
네트워크 통신을 위해서는 HttpURLConnection(안드로이드 기본 라이브러리), Retrofit(Square사의 오픈소스 라이브러리)와 함께 대표적인 라이브러이다. HttpURLConnection은 제한된환경에서 주로 사용되고 잘 사용 안된다고 한다.
외부 라이브러리이기 때문에 사용할 때에는 build.grandle(Module)의 dependencies 항목에 추가해주어야 한다.
implementation 'com.android.volley:volley:1.1.1'
현재 1.1.1버전까지 나왔다.
dependencies에 추가해준 이후에는 manifest파일에도 아래의 코드를 <manifest></manifest> 사이에 추가해주어야 한다.
<user-permission
android:name="android.permission.INTERNET"
/>
volley는 웹 오창과 응답을 단순화시킨 라이브러리로 스레드를 통한 동작을 사용자가 직접 구현하지 않아도 되는 장점이 있다.
이 외의 네트워크 요청 자동 스케쥴링, 여러 네트워크 동시 요청, 요청 우선순위... 등등 다양한 장점들이 있다.
사용법
간단하게 Request 객체를 하나 만든 후에 parameter를 채워준 후 RequestQueue에 넣어주면 된다. 그러면 RequestQueue가 스레드 단위로 응답을 처리하며 응답은 Request객체를 생성할 때 넣어주었던 Listener를 통해서 처리를 하게 된다.
Request 객체를 만들 때 들어가는 인자들은 순서대로
1. request type
2. url
3. success listener
4. failure listener
이다.
간단하게 String을 주고받는 StringRequest객체를 예로 들고 나머지는 바꿔가며 만들면 된다.
StringRequest request = new StringRequest(
Request.Mehotd.GET, // .Get과 .POST방식
url, // string
new Response.Listener<String>(){
@Override
public void onResponse(String response){
//처리
}
},
new Responser.ErrorListener<String>(){
@Override
public void onErrorResponser(VolleyError error){
//처리
}
}
) { // POST방식일때 전달할 요청 파라미터가 있는 경우 getParams 메소드에서 반호나하는 HashMap객체를 넣어줌
@Override
protected Map<String, String> getParams() trhows AuthFailureError {
Map<String,String> params = new HashMap<String, String>();
return params
}
}
저렇게 생성된 StringRequest객체 request를 RequestQueue를 하나 만들어서 넣어주면 된다.
앱이 시작됐을 때 초기화가 되어있으면 되고 한 번 만들면 계속 사용할 수 있다.
RequestQueue는 클래스를 따로 만들어서 static으로 정의해도 되고 그냥 사용해도 된다.
<참고>
https://layers7.tistory.com/25
'study > android' 카테고리의 다른 글
[android] HttpURLConnection (0) | 2019.09.21 |
---|---|
[android] AsyncTask (0) | 2019.09.20 |
[android] LayoutInflater & Factory Method (0) | 2019.09.17 |
[android] ViewPager & PagerAdapter + LayoutInflater (0) | 2019.09.17 |
[android] drawable (0) | 2019.09.17 |