Retrofit 의 소개 와 사용
3335 단어 Retrofit
준비:
우선 라 이브 러 리 의존 도가 필요 합 니 다. Maven 을 사용 할 수 있 습 니 다.
com.squareup.retrofit2
retrofit
2.4.0
Gradle 도 사용 할 수 있어 요.
compile 'com.squareup.retrofit2:retrofit:2.4.0
Maven 과 Gradle 을 사용 할 수 없다 면 jar 가방 을 수 동 으로 다운로드 하고 주소 속달 을 다운로드 할 수 있 습 니 다.
원본 코드 를 읽 어야 항목 에 들 어가 볼 수 있 습 니 다.https://github.com/square/retrofit
다음은 어떻게 사용 하 는 지 소개 합 니 다.
우선 네트워크 요청 인 터 페 이 스 를 새로 만들어 야 합 니 다.
public interface GitHubService {
@GET("users/{user}/repos")
Call> listRepos(@Path("user") String user);
}
그리고 인 터 페 이 스 를 실현 하 는 클래스 를 새로 만 들 고 클래스 에 retrofit 인 스 턴 스 를 만 듭 니 다.
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();
GitHubService service = retrofit.create(GitHubService.class);
service 를 통 해 만 든 Call 은 원 격 비동기 또는 동기 화 요청 을 실현 할 수 있 습 니 다.
Call> repos = service.listRepos("octocat");
얻 은 repos 는 해당 정보 실체 로 가장 간단 한 요청 입 니 다.
다음은 Retrofit 에서 설명 한 내용 을 소개 합 니 다. http 요청 은 주석 을 통 해 요청 방식 을 확인 합 니 다. 예 를 들 어 @ GET (), @ POST () 와 같은 형식 입 니 다.
Retrofit 지원 URL 매개 변수 교체 및 조회 매개 변수 지원
예 를 들 면:
@GET("group/{id}/users")
Call> groupList(@Path("id") int groupId);
groupList 방법 을 호출 할 때 인자 groupId 를 url 의 id 매개 변수 로 자동 으로 변환 하여 매개 변수의 교 체 를 실현 합 니 다.이렇게 호출 된다 면, groupList (3) 는
호출 된 url 은 다음 과 같 습 니 다: group / 3 / users
예 를 들 면:
@GET("group/{id}/users")
Call> groupList(@Path("id") int groupId, @Query("sort") String sort);
이렇게 되면 자동 으로 id 를 url 의 내용 으로 하고 sort 는 조회 매개 변수 로 하 며 groupList (3, "인기") 에서 호출 하 는 url 은
group / 3 / users? sort = "인기"
대상 요청 체 변환 지원 (예: JSON, 프로 토 콜 버퍼)
예 를 들 면:
기본적으로 Retrofit 는 HTTP 주 체 를 OkHttp 의 ResponseBody 형식 으로 역 정렬 할 수 있 고 RequestBody 형식 @ Body 만 받 아들 일 수 있 습 니 다.그러나 Retrofit 는 다른 종 류 를 지원 하기 위해 변환 기 를 추가 할 수 있 습 니 다.Retrofit 모듈 은 유행 하 는 직렬 화 라 이브 러 리 를 지원 합 니 다.
Gson:
com.squareup.retrofit2:converter-gson
Jackson:
com.squareup.retrofit2:converter-jackson
Moshi:
com.squareup.retrofit2:converter-moshi
Protobuf:
com.squareup.retrofit2:converter-protobuf
Wire:
com.squareup.retrofit2:converter-wire
Simple XML:
com.squareup.retrofit2:converter-simplexml
Scalars (primitives, boxed, and String):
com.squareup.retrofit2:converter-scalars
예 를 들 면:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com")
.addConverterFactory(GsonConverterFactory.create())
.build();
GitHubService service = retrofit.create(GitHubService.class);
이렇게 하면 RequestBody 는 JSon 형식 을 지원 할 수 있 습 니 다.대략적인 소 개 는 이 렇 습 니 다. 여러분 의 학습 에 도움 이 되 었 으 면 좋 겠 습 니 다 →→ 마지막 으로 조언 을 드 리 겠 습 니 다. 공 부 는 공식 문 서 를 많이 읽 어야 합 니 다. 문서 속달
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Android】Retrofit + Rx리트로핏의 Rx화에 관해서는 제이크 신작 을 사용한 것 같다.농담하다 현재 본가의 리트로핏에는 어댑터가 있는 것 같은데, 제이크 신작DEPRECATED이 있다. 사용 환경 구조 app/build.gradle에 다음을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.