본문 바로가기

study/android

[android] Volley

728x90

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

https://youngest-programming.tistory.com/16

https://www.edwith.org/boostcourse-android/lecture/17091/

728x90

'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