2016-05-31 177 views
0

我有縮小的一個URL,我想有最後的URLRetrofit2如何獲得重定向URL @HEAD( 「/」)

隨着改造1.9我曾經這樣做:

@HEAD("/XXXXXXXXX") 
void fetchFinalUrl(Callback<String> cb); 


public void getUrl() { 
    mMinifyService.fetchFinalUrl(new Callback<String>() { 
       @Override 
       public void success(String s, Response response) { 
        response.getUrl(); 
       } 
       [...] 
} 

但現在與Retrofit 2 .getUrl()不存在任何想法如何做到這一點?

在此先感謝。

編輯

終於拿到了!

public class ApiProvider<T> { 

    private Retrofit retrofit; 
    private static final String END_POINT_MINIFY = "XXXXXXX"; 

    public ApiProvider() { 
     initAdapter(); 
    } 

    public T getService(Class<T> service) { 
     return retrofit.create(service); 
    } 

    private void initAdapter() { 
     HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); 
     interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
     OkHttpClient client = new OkHttpClient.Builder() 
       .addInterceptor(interceptor) 
       .followRedirects(false) 
       .build(); 

     retrofit = new Retrofit.Builder() 
       .baseUrl(END_POINT_MINIFY) 
       .addConverterFactory(new ToStringConverterFactory()) 
       .client(client) 
       .build(); 
    } 

} 

public interface IMinifyService { 
    @HEAD("/XXXXXXXXX") 
    Call<Void> fetchFinalUrl(Callback<String> cb); 
} 


public class MinifyServiceImpl { 

    private ApiProvider<IMinifyService> mApiProvider = new ApiProvider<>(); 
    private IMinifyService mMinifyService = mApiProvider.getService(IMinifyService.class); 

    public Promiser<String, Integer> fetchMinifyUrl() { 
     return new Promiser<>((resolve, reject) -> mMinifyService.fetchMinifyUrl().enqueue(new Callback<Void>() { 
      @Override 
      public void onResponse(Call<Void> call, Response<Void> response) { 
       if (response.code() >= 300 && response.code() < 400){ 
        resole.run(response.headers().get("Location")); 
       } else { 
        reject.run(response.code()); 
       } 
      } 

      @Override 
      public void onFailure(Call<Void> call, Throwable t) { 
       reject.run(t.hashCode()); 
      } 
     })); 
    } 

} 

,如果你想使用Promizer - >Click here

回答

1
response.raw().request().url() 
+1

當我做到這一點我有縮小的網址,而不是最終的網址:/ – Nodens