네트워크 라이브러리
Volley
1. 라이브러리 설치하기
- 설치 코드 확인
- Gradle 모듈에 설치하기
implementation("com.android.volley:volley:1.2.1")
- manufests/AndroidManifest.xml 에 권한 설정해 주기
<uses-permission android:name="android.permission.INTERNET"/>
2. onCreate 함수 안에 네트워크 통신하는 코드작성
// 네트워크로 부터 데이터를 받아온다.
// Volley 라이브러리를 이용한 네트워크 통신
// 1. request queue 를 만든다.
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);
// 2. request(요청) 를 만든다.
// 데이터 타입은, 응답의 json 형식을 보고 결정한다.
// {} JsonObjectRequest , [] JsonArrayRequest
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET,
"https://block1-image-test.s3.ap-northeast-2.amazonaws.com/employees.json",
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// 네트워크 통신 성공했을 때
progressBar.setVisibility(View.GONE);
Log.i("EMPLOYER", response.toString());
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 네트워크 통신 실패 했을 때
progressBar.setVisibility(View.GONE);
Toast.makeText(MainActivity.this, "네트워크 통신 에러", Toast.LENGTH_SHORT).show();
Log.i("EMPLOYER MAIN", error.toString());
}
}
);
// 3. 네트워크로 보낸다.
queue.add(request);
3. 네트워크와 열결 할 때 보여주는 progressBar를 액티비티에 보여준다.
- progressBar 가운데에 정렬하기 _ layout_centerInParent를 true로 해주기
- 네트워크를 받아오면 눈에 안 보이게 하는 코드 작성하기 (위에 이미 작성되어 있음!)
progressBar.setVisibility(View.GONE);
4. parse(parsing) 하기 _ 내가 필요한 부분만 꺼내온다.
- 네트워크 통신 성공했을 때 가져온다.
JsonObjectRequest request = new JsonObjectRequest(
Request.Method.GET,
"https://block1-image-test.s3.ap-northeast-2.amazonaws.com/employees.json",
null,
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// 네트워크 통신 성공했을 때
progressBar.setVisibility(View.GONE);
Log.i("EMPLOYER", response.toString());
try {
// 나의 데이터 형식 "status"="success"
String status = response.getString("status");
if(status.equals("success")==false){
Toast.makeText(MainActivity.this,
"파싱 에러",
Toast.LENGTH_SHORT).show();
return;
}
// 나의 데이터 형식 "data"=[{24가지}]
JSONArray data = response.getJSONArray("data");
for(int i = 0 ; i < data.length() ; i++){
JSONObject row = data.getJSONObject(i);
int id = row.getInt("id");
String name = row.getString("employee_name");
int salary = row.getInt("employee_salary");
int age = row.getInt("employee_age");
Employer employer = new Employer(id, name, salary, age);
employerArrayList.add(employer);
}
// 어뎁터를 만들고
// 리사이클러뷰에 어뎁터를 적용하면 화면에 나온다.
adapter = new EmployerAdapter(MainActivity.this, employerArrayList);
recyclerView.setAdapter(adapter);
} catch (JSONException e) {
Toast.makeText(MainActivity.this,
"파싱 에러",
Toast.LENGTH_SHORT).show();
return;
}
}
5. 어뎁터 패키지, 파일 만들기
https://msdev-st.tistory.com/184
* Volley 설명 사이트
https://google.github.io/volley/
* JSON 형식 정리해 주는 사이트
- JSON 데이터를 넣고 tree 형식으로 COPY 하면 정리된 JSON 데이터를 확인할 수 있다.
'Android Studio' 카테고리의 다른 글
[Android Studio] JSON 데이터 파싱 방법 (0) | 2024.06.11 |
---|---|
[Android Studio] Adapter.java 사용하기 (4) | 2024.06.10 |
[Android Studio] 객체 직렬화 (0) | 2024.06.10 |
[Android Studio] 데이터 파일(앱 내 저장소)로 저장하여 관리하는 방법 _ SharedPreferences (0) | 2024.06.07 |
[Android Studio] 액티비티 간의 단방향 데이터 전달 방법 (0) | 2024.06.07 |