안드로이드 retrofit2 예제

나는 항상 모든 프로젝트에 대한 안드로이드에 대한 JRebel을 활성화합니다. 그것은 안 드 로이드 스튜디오 플러그인으로 패키지, 그래서 그것을 사용 하 고 내가 응용 프로그램을 실행 하는 사용자 지정 단추를 클릭 하는 것을 의미, 다른 모든 처리. 안드로이드에 대한 JRebel즉시 실행 중인 장치 또는 에뮬레이터에 코드와 자원을 업데이트 할 수있는 안드로이드 개발자를위한 생산성 도구입니다. 즉, 응용 프로그램을 개발하는 동안 응용 프로그램이 다시 시작되기를 기다리는 소중한 시간을 낭비할 필요가 없으며 종종 모든 관련 응용 프로그램 상태가 손실되는 경우가 많습니다. 영광 스러운! POJO 클래스를 미리보고 안드로이드 스튜디오 프로젝트 구조에 복사합니다. 네트워크 작업을 수행하려면 응용 프로그램 매니페스트에 인터넷 권한을 포함해야 합니다. 이 연습에서는 Android에서 Retrofit을 사용하여 트위터에 로그인하는 방법을 설명합니다. 제공된 사용자 이름에 대한 사용자 세부 정보를 요청하고 표시할 수 있는 응용 프로그램을 작성합니다. 이 연습에서는 OAuth 2와 함께 트위터 응용 프로그램 전용 인증을 사용하여 승인을 받아야 합니다. 이 자습서를 작동 하려면 트위터 계정이 있어야 합니다. 또한 트위터 앱으로 이동하여 소비자 키와 해당 비밀을 얻으려면 새 앱을 만들어야 합니다.

OAuth 토큰을 요청하려면 나중에 이 토큰이 필요합니다. 개조는 스퀘어, Inc.에 의해 안드로이드와 자바에 대한 유형 안전 HTTP 클라이언트입니다. 원격 API를 선언적이고 형식이 안전한 인터페이스로 전환하여 HTTP 통신을 간소화하는 오픈 소스 라이브러리입니다. REST 기반 웹 서비스를 통해 JSON(또는 기타 구조화 된 데이터)을 비교적 쉽게 검색하고 업로드 할 수 있습니다. JSON 구조에 대해 고급으로 정의해야 하는 POJO를 사용하여 JSON 응답을 자동으로 직렬화합니다. GITHUB에서 전체 프로젝트를 가져옵니다. RxJava 프레임워크와 일치하여 응답을 처리하기 위해 구독자를 만들어야 합니다. onCompleted(), onError() 및 onNext() 메서드를 추가해야 합니다. Android RxJava 라이브러리를 사용하여 UI 주 스레드에서 이 이벤트를 처리되도록 지정할 수도 있습니다.

참고: 기본 네트워크 호출 동작을 재정의하려는 경우 subscribeOn()을 지정할 수 있습니다. 그렇지 않으면 생략할 수 있습니다. 참고: RxJava가 API를 다시 작성함에 따라 여기에 사용된 “구독”이라는 용어는 “일회용”으로 대체됩니다. “구독”이라는 단어는 충돌 의도가 있었기 때문에. 이제 안드로이드 스튜디오로 돌아가봅시다. 주 패키지 내부에 새 하위 패키지를 만들고 데이터 이름을 지정합니다. 새로 생성된 데이터 패키지 내에서 다른 패키지를 만들고 모델 이름을 지정합니다. 모델 패키지 내에서 새 Java 클래스를 만들고 소유자이름을 지정합니다. 이제 jsonschema2pojo에서 생성된 소유자 클래스를 복사하여 만든 소유자 클래스 안에 붙여넣습니다. 다음 예제는 Gradle 빌드 시스템과 함께 Eclipse IDE를 사용하는 것입니다.

이 연습에서는 이클립스를 사용하여 Gradle 및 그라들 사용에 익숙하다고 가정합니다. Retrofit은 인터넷의 서버에서 실행되는 API에 대해 HTTP 요청을 수행합니다. Android 응용 프로그램에서 이러한 요청을 실행하려면 네트워크 소켓을 열려면 인터넷 권한이 필요합니다. 이제 응용 프로그램에서 네트워크 작업을 수행하려면 매니페스트 파일에 다음 권한이 포함되어야 합니다. 지금 당신은 안드로이드에 대한 개조 및 JRebel 모두와 함께 재생할 준비가되어 있습니다. 여기저기에서 코드 줄을 변경하고 시간을 낭비하지 않고 실행 중인 앱에서 새 코드의 결과를 볼 수 있습니다. 기여자 클래스에 몇 가지 필드를 추가해 보십시오. 텍스트 보기를 모든 참여자에 적합한 위젯 목록으로 바꿉니다.

HTTP 끝점을 모두 변경하고 다른 웹 사이트를 쿼리합니다. 세상은 당신의 굴입니다. 따라서 네트워크 호출을 백그라운드 스레드로 이동하여 이 코드를 리팩터링해야 합니다.