【问题标题】:Retrofit returns error 307, calling web service in android改造返回错误 307,在 android 中调用 web 服务
【发布时间】:2015-01-27 06:51:47
【问题描述】:

我有一个奇怪的问题。我创建了一个使用Retrofit library 调用Web 服务的android 应用程序。我已经在许多设备和 Android 版本上广泛测试了该应用程序。 除了一个:Acer Iconia Tab A500 与 Android 4.0.3(API 级别:15)外,所有工作正常。对于这个,每次调用 web 服务时,retrofit 都会返回以下错误:

11-28 16:08:59.700: W/System.err(4436): retrofit.RetrofitError: 307 Temporary Redirect

我确定我的代码是正确的,但我不知道问题出在哪里。有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

    可能是您的新手机无法访问互联网和/或服务器。当我收到错误消息时,这就是我的手机出了问题。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      尝试让您的应用程序遵循重定向。这是怎么做的

      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

      【讨论】:

      • 可以告诉我在 OkHttp 中设置的位置和内容
      【解决方案3】:

      我也遇到了同样的问题,当我点击基本链接时,服务器重定向到其他链接,我通过获取重定向服务器链接解决了这个问题,然后点击该 URL 以访问所有其他 Web API。

      获取重定向链接:

      String redirectUrl=responseHeaders.get("location");
      

      注意:在 volley 中,我们可以使用重试策略,因为我们得到这个 307 代码并且可以在位置(重定向 url)上重试。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-20
        • 1970-01-01
        • 1970-01-01
        • 2021-06-21
        • 2012-10-28
        • 2013-09-13
        • 2011-01-26
        • 2011-05-05
        相关资源
        最近更新 更多