Java 如何获取重定向url@HEAD(";/";)

Java 如何获取重定向url@HEAD(";/";),java,android,retrofit,retrofit2,Java,Android,Retrofit,Retrofit2,我有一个缩小的网址,我想有最终的网址 对于1.9版改型,我曾经这样做: @HEAD("/XXXXXXXXX") void fetchFinalUrl(Callback<String> cb); public void getUrl() { mMinifyService.fetchFinalUrl(new Callback<String>() { @Override public void succe

我有一个缩小的网址,我想有最终的网址

对于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();
                }
                [...]
}
@HEAD(/xxxxxxxx)
作废财务报表(回拨cb);
public void getUrl(){
mMinifyService.fetchFinalUrl(新回调函数(){
@凌驾
public void成功(字符串s,响应){
response.getUrl();
}
[...]
}
但是现在有了改型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());
            }
        }));
    }

}
公共类API提供程序{
私人改装;
私有静态最终字符串结束点\u MINIFY=“XXXXXXX”;
公共服务提供者(){
initAdapter();
}
公共服务(班级服务){
返回改装。创建(服务);
}
私有void initAdapter(){
HttpLoggingInterceptor拦截器=新的HttpLoggingInterceptor();
拦截器.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient客户端=新建OkHttpClient.Builder()
.addInterceptor(拦截器)
.followRedirects(false)
.build();
改装=新改装.Builder()
.baseUrl(端点缩小)
.addConverterFactory(新的ToString ConverterFactory())
.客户(客户)
.build();
}
}
公共接口IMinifyService{
@标题(“/XXXXXXXXX”)
调用fetchFinalUrl(回调cb);
}
公共类MinifyServiceImpl{
私有ApiProvider mApiProvider=新ApiProvider();
私有的IMinifyService-mMinifyService=mApiProvider.getService(IMinifyService.class);
公共Promiser fetchMinifyUrl(){
返回新的Promiser((解析,拒绝)->mMinifyService.fetchMinifyUrl().enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
if(response.code()>=300&&response.code()<400){
resole.run(response.headers().get(“Location”);
}否则{
拒绝.run(response.code());
}
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
拒绝.run(t.hashCode());
}
}));
}
}

如果您想使用Promizer-->

当我这样做时,我有缩小的url而不是最终的url:/当我这样做时,我有缩小的url而不是最终的url:/
response.raw().request().url()