【问题标题】:Volley + OkHttp on Android gives error on status 200 responseAndroid 上的 Volley + OkHttp 在状态 200 响应上给出错误
【发布时间】:2015-11-09 09:04:41
【问题描述】:

当我只用 Volley 提出请求时,一切顺利,我的 StringRequest 转到 onResponse。

但是当我切换到 Volley + Okhttp 组合时,我的请求通过了,我收到了与以前相同的响应,但随后我收到以下错误消息:

E/Volley﹕ [122319] BasicNetwork.performRequest: Unexpected response code 200 for <my request url>
java.io.IOException: closed
    com.android.volley.NetworkError: java.io.IOException: closed
            at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:182)
            at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)
     Caused by: java.io.IOException: closed
            at okio.RealBufferedSource$1.read(RealBufferedSource.java:345)
            at java.io.InputStream.read(InputStream.java:162)
            at com.android.volley.toolbox.BasicNetwork.entityToBytes(BasicNetwork.java:254)
            at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:130)
            at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:114)

我将这个 https://gist.github.com/bryanstern/4e8f1cb5a8e14c202750 用于我的 OkHttpStack for Volley。

【问题讨论】:

  • 您对此有什么解决方案吗?我得到这个 Volley: [168] "BasicNetwork.performRequest: Unexpected response code 200" for 仅在模拟器上但在设备上工作正常。 :( 可能是什么问题。请提供任何指针/方向。谢谢
  • 对不起,我从那时起就开始改造改造,从那时起就没有调查过

标签: android android-volley okhttp


【解决方案1】:

我没有太多时间进行调查,但是在使用通过代理 (Charles) 连接的模拟器时遇到了同样的问题。对我来说,当我在没有代理或在设备上进行测试时,问题就消失了。

【讨论】:

  • 我得到了这个 Volley: [168] "BasicNetwork.performRequest: Unexpected response code 200" for only on Emulator 但在设备上它工作正常。是的,我的系统跨越了代理服务器。我已经尝试通过从代理隧道中删除我的系统仍然面临同样的问题
  • @user3062722 这应该是被接受的答案,非常感谢。
【解决方案2】:

我在使用 RequestQueue 的 start 和 stop 方法时也遇到了同样的问题。在许多流行的博客中都指出,当用户甩动时应该停止 RequestQueue 以确保没有抽搐。但是,当您调用 stop 时,所有 RequestQueue 的请求都会停止,即使是那些已经在进行网络调用的请求。上述异常发生在这些请求被初步停止时。不调用停止函数为我解决了这个问题。

【讨论】:

    【解决方案3】:

    对于那些使用代理的人(在我的例子中是 Charles),除了在设置中配置您的代理之外,还需要在 Android 模拟器中配置您的代理。

    所以,这是我在设置模拟器中的配置

    这是在 Android Emulator 中使用 wifi 配置代理的步骤

    1. 设置
    2. 网络和互联网
    3. 无线网络
    4. Android 无线网络
    5. 点击设置图标
    6. 点击编辑图标

    1. 配置您的代理

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2017-02-25
      • 2015-11-16
      • 2021-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多