꾸준히 안타치기

Volley 본문

Android _ 서버연동_채팅/Android - study

Volley

글자줍기 2021. 8. 8. 04:04
반응형

Volley 비동기 방식 , 레트로핏도 비동기 

http://instructure.github.io/blog/2013/12/09/volley-vs-retrofit/

Volley 라이브러리는 웹 요청과 응답을 단순화시키기 위해 만들어진 라이브러리들 중의 하나입니다.

 

먼저 요청(Request) 객체를 만들고 이 요청 객체를 요청 큐(RequestQueue)라는 곳에 넣어주기만 하면 됩니다.

그러면 요청 큐가 알아서 웹서버에 요청하고 응답까지 받아 여러분이 사용할 수 있도록 지정된 메소드를 호출해줍니다.

네이버 부스트 코스

Volley 라이브러리를 사용할 때의 가장 큰 장점은 스레드를 신경 쓰지 않아도 된다는 것입니다.

Volley가 가지는 몇 가지 장점들은 다음과 같습니다.

  • 네트워크 요청(Request) 우선 순위를 자동으로 관리한다.
  • 동시에 여러 네트워크 요청을 할 수 있다.
  • 요청을 할 때 Cache 적용 여부를 의식하지 않아도 된다. 

요청 큐가 내부에서 스레드를 만들고 웹서버에 요청하고 응답을 받고 나면 메인 스레드에서 결과를 처리할 수 있도록 만든 후 여러분이 설정한 리스너의 메소드를 호출해줍니다.

따라서 화면에 결과를 표시할 때 핸들러를 사용하지 않아도 됩니다.

 

Volley : 구글에서 제공하는 네트워크 라이브러리

HttpUrlConnection과 달리 사용자가 쓰레드를 직접 구현하지 않아도 된다.

ReaquestQueue가 알아서 쓰레드를 생성하여 서버에 요청을 보내고 응답을 받는다.

응답이 오면 ResponseListener로 응답을 전달해준다.

 

StringRequest : 문자열을 결과로 받는 요청 정보.

StringReqeust(요청방식 , 요청을보낼url, 응답을 받았을때 호출될 메소드, 에러가 발생했을 때 호출될 메소드)

-요청방식 : GET 또는 POST

-요청을보낼url

-응답을 받았을때 호출될 메소드 (Response.Listener)

-에러가 발생했을 때 호출될 메소드 (Response.ErrorListener)

 

RequestQueue :

-서버 요청자

-다른 Request클래스들의 정보대로 서버에 요청을 보내는 역할

-스레드를 자동으로 생성하여 서버에 요청을 보내고 응답을 받는다

 

*build.gradle의 dependencies에 라이브러리를 추가

implementation 'com.android.volley:volley:버전'

Response.Listener<String> responseListener = new Response.Listener<String>() {
    @Override
    public void onResponse(String response) {
        try {
            JSONObject jsonObject = new JSONObject(response);
            boolean success = jsonObject.getBoolean("success");
            if (success) {
                Toast.makeText(getApplicationContext(), "연결 성공", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "연결 실패", Toast.LENGTH_SHORT).show();
                return;
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
};
Response.ErrorListener errorListener = new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        error.printStackTrace();
    }
};
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, responseListener, errorListener){
    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String, String> params = new HashMap<String, String>();
        params.put("key", "value");
        return params;
    }
};
RequestQueue queue = Volley.newRequestQueue(this);
queue.add(stringRequest);

 

http://andang72.blogspot.com/2016/12/volley-http.html

 

안드로이드에서 Volley 을 사용하여 HTTP 통신을 할때 타임아웃 문제

자바 기반 웹 프로그램 개발 관련 블로그입니다.

andang72.blogspot.com

안드로이드에서 Volley 을 사용하여 HTTP 통신을 할때 타임아웃 문제

반응형
Comments