1. 개요

이 짧은 사용방법(예제)에서는 Retrofit2 에서 동적 URL만드는 방법을 배웁니다 .

2. @Url 어노테이션

런타임 중에 애플리케이션에서 동적 URL을 사용해야 하는 경우가 있습니다. Retrofit 라이브러리 버전 2 는 끝점에 대한 전체 URL전달할있는 @Url 어노테이션을 도입했습니다  .

@GET
Call<ResponseBody> reposList(@Url String url);

이 어노테이션은 OkHttp 라이브러리 HttpUrl 클래스를 기반으로 하며 URL 주소는 <a href= “” >를 사용하여 페이지의 링크처럼 해결 됩니다. @Url 매개변수를 사용할 때 @GET 어노테이션에 주소를 지정할 필요가 없습니다 .

@ Url 매개변수는 서비스 구현에서 baseUrl대체합니다  .

Retrofit retrofit = new Retrofit.Builder()
  .baseUrl("https://api.github.com/")
  .addConverterFactory(GsonConverterFactory.create()).build();

중요한 것은 @Url 어노테이션 을 사용  하려면 서비스 메소드의 첫 번째 매개변수로 설정해야 한다는 것입니다.

3. 경로 매개변수

기본 URL의 일부가 일정하다는 것을 알고 있지만 확장자나 사용될 매개변수의 수를 모르는 경우 @Path 어노테이션과  인코딩된 플래그를 사용할 수 있습니다 .

@GET("{fullUrl}")
Call<List<Contributor>> contributorsList(@Path(value = "fullUrl", encoded = true) String fullUrl);

이렇게 하면 인코딩된 매개변수를 사용하지 않은 것처럼 모든 "/"가 %2F 로 대체 되지 않습니다. 그러나 모든 문자 "?" 전달된 주소에서 여전히 %3F 로 대체됩니다 .

4. 요약

Retrofit 라이브러리를 사용하면 @Url 어노테이션 만 사용하여 애플리케이션 런타임 중에 동적 URL을 쉽게 제공할 수 있습니다 .

평소와 같이 모든 코드 예제는 GitHub 에서 찾을 수 있습니다 .

HTTPClient footer