Android Retrofit 의 간단 한 소개 와 사용

3960 단어 androidretrofit쓰다
Retrofit 와 okhttp 는 Square 회사 에서 공동으로 나 왔 고 retrofit 는 okhttp 에 대해 포장 을 한 것 입 니 다.네트워크 요청 을 모두 Okhttp 에 맡 겼 습 니 다.우 리 는 간단 한 설정 만으로 retrofit 를 사용 하여 네트워크 요청 을 할 수 있 습 니 다.그 주요 작 가 는 Android 대신JakeWharton입 니 다.
패키지:
copile'com.squareup.retrofit 2:retrofit:2.0-beta 4'//retrofit 2 에 필요 한 가방
copile'com.squareup.retrofit 2:converter-gson:2.0.0-beta 4'//ConverterFactory 의 Gson 의존 패키지
copile'com.squareup.retrofit 2:converter-scalars:2.0.0-beta 4'/ConverterFactory 의 String 의존 패키지
*가 져 온 retrofit 2 패키지 의 버 전 은 일치 해 야 합 니 다.그렇지 않 으 면 잘못 보 고 됩 니 다.
우선 우리 가 요청 한 Api 를 정의 합 니 다.우 리 는 이렇게 가정 합 니 다.
http://106.3.227.33/pulamsi/mobileLogin/submit.html
Okhttp 와 달리 Retrofit 는 우리 의 Call 대상 을 되 돌려 주 는 인 터 페 이 스 를 정의 해 야 합 니 다.여기 서 보 여 주 는 것 은 Post 요청 입 니 다.

public interface RequestServes {
  @POST("mobileLogin/submit.html")
  Call<String> getString(@Query("loginname") String loginname,
              @Query("nloginpwd") String nloginpwd);
}
Retrofit 가 제공 하 는 요청 방식 은@GET 와@POST 가 있 고 매개 변 수 는@PATH 와@Query 등 이 있 습 니 다.저 희 는 자주 사용 하 는 것 만 소개 합 니 다.앞의 두 가 지 는 말 그대로 당신 의 요청 방식 Get or Post 를 정의 하 는 것 입 니 다.뒤의@PATH 는 매개 변 수 를 통 해 완전한 경 로 를 채 우 는 것 을 말 합 니 다.일반적인 용법:

@GET("{name}")
Call<User>
getUser(@Path("name") String name);
이 인자 username 은{name}에 채 워 져 완전한 Url 요청 주 소 를 만 듭 니 다.{name}은 자리 표시 자 에 해당 합 니 다.
@Query 는 우리 가 요청 한 키 값 이 맞 는 설정 입 니 다.우 리 는 Call 대상 을 구축 할 때 이 매개 변 수 를 입력 합 니 다.

@POST("mobileLogin/submit.html")
  Call<String> getString(@Query("loginname") String loginname,
             @Query("nloginpwd") String nloginpwd);
여기@Query("loginname")가 바로 키 입 니 다.뒤의 loginname 은 구체 적 인 값 입 니 다.주의해 야 할 것 은 Get 과 Post 요청 입 니 다.모두 이렇게 파 라 메 터 를 채 웁 니 다.
인터페이스 가 끝 난 후에 우 리 는 Retrofit 대상 을 정의 하여 요청 해 야 합 니 다.
Retrofit 대상 만 들 기

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl("http://106.3.227.33/pulamsi/")
        //      String   
        .addConverterFactory(ScalarsConverterFactory.create())
        //      Gson   (      )
        .addConverterFactory(GsonConverterFactory.create())
        //      Oservable<T>   
        .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
        .build();
이 곳 의 baseUrl 은 이전@POST("mobileLogin/submit.html")에 정 의 된 매개 변 수 를 더 해 완전한 요청 주 소 를 만 듭 니 다.addConverterFactory(ScalarsConverterFactory.create())반환 지원 을 구축 했다 는 뜻 입 니 다.만약 당신 의 Call 대상 의 범 형 이 다른 형식 을 받 으 려 면 다른 지원 을 추가 해 야 합 니 다.상기 코드 는 이미 열거 되 어 있 습 니 다.
다음 에 우 리 는 이 Retrofit 대상 으로 RequestSerives 인터페이스 대상 을 만 듭 니 다.즉,우리 가 이전에 정 의 했 던 인터페이스 이 고 우리 의 Call 대상 을 얻 습 니 다.

RequestSerives requestSerives = retrofit.create(RequestSerives.class);//      Java       
Call<String> call = requestSerives.getString("userName", "1234");//            
받 은 Call 대상 을 이용 하여 우 리 는 네트워크 요청 을 보 냈 다.

call.enqueue(new Callback<String>() {
  @Override
  public void onResponse(Call<String> call, Response<String> response) {
    Log.e("===","return:"response.body().toString());
  }
  @Override
  public void onFailure(Call<String> call, Throwable t) {
    Log.e("===","  ");
  }
});
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 Android Retrofit 의 간단 한 소개 와 사용 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기