我有一个奇怪的问题。我创建了一个使用Retrofit library来调用Web服务的Android应用程序。我已经在很多设备和Android版本上广泛测试了应用程序。 一切正常,除了一个:Acer Iconia Tab A500与Android 4.0.3(API等级:15)。对于这个,每次调用Web服务时,改装都会返回以下错误:
11-28 16:08:59.700: W/System.err(4436): retrofit.RetrofitError: 307 Temporary Redirect
我确定我的代码是正确的,我无法弄清楚问题出在哪里。有什么建议吗?
答案 0 :(得分:1)
可能是您的新手机无法访问互联网和/或服务器。当我收到错误时,这就是我的手机出了什么问题。
希望这有帮助!
答案 1 :(得分:0)
尝试让您的应用程序遵循重定向。这是怎么做的
使用OkHttp
:
public static void setFollowRedirects (boolean auto)
public OkHttpClient setFollowProtocolRedirects(boolean followProtocolRedirects)
使用HttpURLConnection
:
public static void setFollowRedirects (boolean auto)
public void setInstanceFollowRedirects (boolean followRedirects)
参见讨论here。
答案 2 :(得分:0)
我也面临同样的问题,当我点击基本链接时服务器重定向到其他链接,我通过获取重定向服务器链接解决了它,然后点击该URL访问所有其他Web API。
获取重定向链接:
String redirectUrl=responseHeaders.get("location");
注意:在凌空中我们可以使用重试策略,因为我们得到这个307代码并且可以在该位置重试(重定向URL)。
如果有人对此问题有任何其他最佳解决方案,请告诉我..