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 에서 찾을 수 있습니다 .