307临时重定向错误Android和iOS

时间:2017-01-07 09:10:15

标签: android ios web-services

我们正在使用来自同一后端的相同Web服务(JSON)为Android和iOS开发应用程序。同样,使用相同的URL

但是,在连接到网络服务时,我们收到了" 307临时重定向" Android中有错误,但iOS中没有。

我们正在使用以下连接类:

  • Android:HttpURLConnection
  • iOS:NSURLConnection

我们想问:

  1. 此错误的原因?
  2. 为什么它只出现在一个平台上?#34; Android"而不是其他" iOS"?
  3. 如何从后端和前端解决这个问题?
  4. 谢谢,

1 个答案:

答案 0 :(得分:1)

**307 Temporary Redirect: What It Is and How to Fix It- Android**

您可以创建一个额外的拦截器来处理307:

private static class RedirectInterceptor implements Interceptor {@Override
public Response intercept(Chain chain) throws IOException {
    Request request = chain.request();
    Response response = chain.proceed(chain.request());
    if (response.code() == 307) {
        request = request.newBuilder()
                .url(response.header("Location"))
                .build();
        response = chain.proceed(request);    }
    return response;
}

并将RedirectInterceptor添加到您的okHttpClient(例如,okhttp2)

OkHttpClient okHttpClient = new OkHttpClient();
okHttpClient.interceptors().add(new RedirectInterceptor());
okHttpClient.setFollowRedirects(false);