자세한 JSON 관련 내용은 다음 게시글 참고 : JSON
[
{
"id": 1,
"name": "jinho",
"age": 25
"intro": "hello?",
},
{
"id": 2,
"name": "Lee Sin",
"age": 35
"intro": "EEE~Ku",
}
]
Class Person(
var id : Int? = null
var name : String? = null
var age : Int? = null
var intro : String? = null
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
🤔 안드로이드 앱에서 서버와 클라이언트의 네트워킹 코드를 액티비티(Activity)에 직접 넣지 않도록 한다.
시스템의 리소스 상황에 따라 액티비티가 언제라도 종료될수 있는데, 이때 서버가 함께 죽어버리게 된다.
이를 해결하기 위해 서버를 스레드보다 서비스로 실행하는 것을 더 지향한다.
startService(intent);
2xx (Successful - 성공 상태 코드) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며, 성공적으로 처리했음을 가리킨다.
4xx (Client Error - 클라이언트 오류 상태 코드) : 클라이언트에 오류가 있음을 나타낸다.
1xx (Informational - 정보성 상태 코드) : 요청을 받았으며 작업을 계속한다.
3xx (Redirection - 리다이렉션 상태 코드) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 한다.
5xx (Server Error - 서버 오류 상태 코드) : 서버가 유요한 요청을 명백하게 수행하지 못했음을 나타낸다.
🤔 메인(UI) 스레드에서 네트워크 관련 작업을 수행하는 경우, NetworkOnMainThreadException 에러가 발생한다.
AsyncTask를 사용하여 백그라운드에서 비동기로 실행하거나,
Retrofit 또는 Volley 등의 라이브러리 사용한다.
많은 것을 배웠습니다, 감사합니다.