사용설명에 따라
인터넷에 접근하는 라이브러리를 설치한다
implementation ("com.android.volley:volley:1.2.1")
그리고 인터넷에 접근하기 위해
인터넷 권한을 받아야 하는데 아래의 파일로 들어가자
권한을 뜻하는 permission을
어플리케이션과 동등한 위치에 넣어주자
<uses-permission android:name="android.permission.INTERNET">
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
데이터타입은 응답의 json 형식을 보고 결정
{}시작끝이라면 Object [] 시작끝이라면 Array
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET,
"JSON의 URL",
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
progressBar.setVisibility(View.GONE);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this,
"네트워크 통신 에러",
Toast.LENGTH_SHORT).show();
}
}
);
queue.add(request);
Volley 객체 생성후
가져올 json의 형식을 먼저 확인후
오브젝트인지 어레이인지로 선택후
이번경우는 오브젝트기때문에
제이슨 오브젝트 리퀘스트로 가져온다
첫번째 파라미터에는 리퀘스트.메소드.겟 으로 설정 하여
HTTP메소드를 설정
두번째 파라미터에는 가져올 JSON이 담겨있는 URL을 입력
세번째 파라미터에는 body에 담겨있는 json을 가져오는데
HTTP 메소드가 GET이기때문에 없으니까
NULL로 설정
그리고 리스폰스에 리스너와
리스폰스에 에러리스너를 설정
리스너는 성공했을때와
에러리스너는 에러가 났을때의 경우
그렇기에
둘 다 진행중을 알리는 프로그레스바를 설정하여
끝나면 사라지게 설정하고
에러리스너에는 토스트로 에러메세지 출력
그리고 queue.add로 리퀘스트를
네트워크로 보내 해당 JSON을 읽어올수 있다
Body에서 받아오는 정보는 없지만 헤더에 정보가 담긴 경우
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer your_token");
headers.put("Custom-Header", "header_value");
return headers;
}
getHeader()를 오버라이드 해주자
쿼리파람에 정보가 있는 경우
String url = "https://example.com/api/resource?param1=value1¶m2=value2";
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET,
url,
null,
new Response.Listener<JSONObject>()
url에 정보가 충분히 담기니 url에만 넣어주도록 하자
'Java > AndroidStudio' 카테고리의 다른 글
Android - Loading 프로그레스바 (0) | 2024.06.10 |
---|---|
Android - json 온라인 에디터 (0) | 2024.06.10 |
Android - 리사이클러뷰 Context, getAdapterPosition, 데이터 수정 (0) | 2024.06.10 |
Android - SharedPreferences 데이터저장과 불러오기 (0) | 2024.06.07 |
Android - 액티비티간의 데이터 전달 방법 (0) | 2024.06.07 |