8

我正在使用 Square 的 Retrofit Client 从 Android 应用程序发出简单的请求。像这样:

  RestAdapter restAdapter = new RestAdapter.Builder()
            .setServer(Configurations.getInstance().plistMap.get("PTBaseURL"))
            .setRequestHeaders(new RequestHeaders() {
                @Override
                public List<Header> get() {
                    List<Header> headers = new ArrayList<Header>();
                        Header authHeader = new Header("Authorization", authType + " " + UserManager.getInstance().currentUser.token);
                        headers.add(authHeader);
                    }
                    return headers;
                }
            })
            .build();

    this.service = restAdapter.create(ClientInterface.class);

一个端点重定向到不同的 URL (s3)。由于对这个问题不重要的原因,重定向请求失败,因此我的callback.failure(error)方法被调用。我需要能够在某个时候访问和修改重定向 URL 或请求,最好在callback.failure(). 我怎样才能做到这一点?

或者,有没有办法设置类似的东西followRedirects = false(并以这种方式拦截重定向)?

4

1 回答 1

8

OkHttp

 public static void setFollowRedirects (boolean auto)
 public OkHttpClient setFollowProtocolRedirects(boolean followProtocolRedirects)

HttpURLConnection

public static void setFollowRedirects (boolean auto)
public void setInstanceFollowRedirects (boolean followRedirects)

请参阅此处的讨论。

于 2014-04-28T21:38:26.707 回答