Android_Volley

Volley 이용하여 네트워크 통신해보기

네트워크 통신 - Client/Server

  • 요청 기술

Volley

  • 동작원리

  • 사용방법

    1. Manifest에 아래와 같은 캐그로 Internet권한을 설정한다.

    2. gradle의 dependencies에 라이브러리를 추가한다.

  • 소스 적용시키기

    • 전체소스

      
       import androidx.appcompat.app.AppCompatActivity;
      
       import android.os.Bundle;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import android.widget.TextView;
       import android.widget.Toast;
      
       import com.android.volley.Request;
       import com.android.volley.RequestQueue;
       import com.android.volley.Response;
       import com.android.volley.VolleyError;
       import com.android.volley.toolbox.StringRequest;
       import com.android.volley.toolbox.Volley;
      
       public class MainActivity extends AppCompatActivity {
           Button btnRequest;
           TextView tvResult;
           EditText edtURL;
           RequestQueue  queue;
           StringRequest request; 
           @Override
           protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.activity_main);
      
               edtURL = findViewById(R.id.editURL);
               tvResult = findViewById(R.id.tvResult);
               btnRequest = findViewById(R.id.btnRequest);
      
                queue = Volley.newRequestQueue(MainActivity.this);
                btnRequest.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
      
                        String URL = "https://" + edtURL.getText().toString();
                  request = new StringRequest(
                            Request.Method.GET,
                            URL,
                            new Response.Listener<String>() {
                                    @Override
                                     public void onResponse(String response) {
                                         tvResult.setText(response);
      
                                }
                            }, new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                     Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
                         }
                       }
                     );
                    queue.add(request);
      
                    }
                });
      
           }
        }
  • 소스 해석

    • 요청과 응답에 대한 객체 선언

       RequestQueue  queue; 
       StringRequest request; 
      • RequestQueue : Request 객체를 서버로 요청 보내는 역할
      • StringRequest : 요청과 응답에 대한 결과를 문자열로 받는 객체
    • StringRequest 객체 생성 및 초기화

      			 request = new StringRequest(
                           Request.Method.GET,
                           URL,
                           new Response.Listener<String>() {
                               @Override
                               public void onResponse(String response) {
                                   tvResult.setText(response);
      
                               }
                           }, new Response.ErrorListener() {
                       @Override
                       public void onErrorResponse(VolleyError error) {
                           Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
                       }
                   }
                 );
      • new StringRequest(데이터전송방식, 요청주소, 응답리스너, 에러리스너)

      • 데이터 전송방식 : GET or POST

      • 요청주소 : 요청할 수조
        ex)http:~ or https:~

      • 응답 리스너 : 서버에서 응답이 왔을 때 실행하는 리스너

         public void onResponse(String response) {
                                  tvResult.setText(response);
        
          }

        긍정적인 응답이 왔을 경우 실행시킬 내용을 추가하면 된다.

      • 오류 리스너 : 요청 or 응답에서 오류가 발생했을 때 실행하는 리스너

        public void onErrorResponse(VolleyError error) {
                           Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();
         }

        부정적인 응답이 왔을 경우 실행시킬 내용을 추가하면 된다.

    • 서버에 요청을 보내는 메소드

       queue.add(request);
  • 실행화면

좋은 웹페이지 즐겨찾기