네트워크 라이브러리
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
[Android Studio] Adapter.java 사용하기
Adapter 사용하기 1. 뷰 홀더 클래스를 만든다.- row.xml 파일과 이어주고, 변수 이름 저장하는 곳// 1. 뷰 홀더 클래스 만든다 public class ViewHolder extends RecyclerView.ViewHolder { TextView txtName; TextView txtAge; Te
msdev-st.tistory.com
* Volley 설명 사이트
https://google.github.io/volley/
Volley overview
Volley overview Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster. Volley is available on GitHub. Volley offers the following benefits: Automatic scheduling of network requests. Multiple concurrent network
google.github.io
* JSON 형식 정리해 주는 사이트
- JSON 데이터를 넣고 tree 형식으로 COPY 하면 정리된 JSON 데이터를 확인할 수 있다.
JSON Editor Online: edit JSON, format JSON, query JSON
JSON Editor Online is the original and most copied JSON Editor on the web. Use it to view, edit, format, repair, compare, query, transform, validate, and share your JSON data.
jsoneditoronline.org
'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 |