首页 > 解决方案 > 使用 OkHttp 请求时程序卡在 socketRead0 方法中

问题描述

我在这里使用 OkHttp3 4.8.1为 Twitter API 开发了一个 Java 库。不幸的是,看起来在发送请求后,一旦一切完成,程序就永远不会停止并卡在SocketInputStream. 图片

当不使用缓存时,它会卡在类的waitForReferencePendingList方法中Reference在此处输入图像描述

我尝试了一切,像这样在我的代码中明确关闭连接,更新 OkHttp 的版本,但仍然相同。任何想法 ?

如果需要,这里 是完成请求的完整代码,总结如下:

      Request request = new Request.Builder()
          .url(url)
          .get()
          .headers(Headers.of("Authorization", "Bearer " + bearerToken))
          .build();
      OkHttpClient client     = new OkHttpClient.Builder().build()
      Response response       = client.newCall(request).execute();
      String   stringResponse = response.body().string();
      return Optional.ofNullable(TwitterClient.OBJECT_MAPPER.readValue(stringResponse, classType));


标签: javatwitterconnectionokhttp

解决方案


最后client.connectionPool().evictAll();在其他地方添加(在我的帖子请求中获取不记名令牌)解决了这个问题!


推荐阅读