Retrofit 의 소개 와 사용

3335 단어 Retrofit
retrofit 는 square 회사 가 개발 한 오픈 소스 프로젝트 로 자바 와 안 드 로 이 드 의 HTTP 라 이브 러 리 에 사용 되 며 주해 와 okhttp 를 이용 하여 서버 데이터 와 상호작용 을 실현 합 니 다.
준비:
우선 라 이브 러 리 의존 도가 필요 합 니 다. 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 형식 을 지원 할 수 있 습 니 다.
대략적인 소 개 는 이 렇 습 니 다. 여러분 의 학습 에 도움 이 되 었 으 면 좋 겠 습 니 다 →→ 마지막 으로 조언 을 드 리 겠 습 니 다. 공 부 는 공식 문 서 를 많이 읽 어야 합 니 다. 문서 속달

좋은 웹페이지 즐겨찾기