소스 적용시키기
전체소스
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;
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);
실행화면