Retrofit返回错误307,在android中调用web服务

时间:2014-11-28 15:17:56

标签: android web-services http retrofit http-error

我有一个奇怪的问题。我创建了一个使用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

我确定我的代码是正确的,我无法弄清楚问题出在哪里。有什么建议吗?

3 个答案:

答案 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)。

如果有人对此问题有任何其他最佳解决方案,请告诉我..