Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用OkHttp请求时,程序卡在socketRead0方法中_Java_Twitter_Connection_Okhttp - Fatal编程技术网

Java 使用OkHttp请求时,程序卡在socketRead0方法中

Java 使用OkHttp请求时,程序卡在socketRead0方法中,java,twitter,connection,okhttp,Java,Twitter,Connection,Okhttp,我使用OkHttp3 4.8.1为Twitter API开发了一个Java库。 不幸的是,在发送了请求之后,一旦完成所有操作,程序就不会停止,并卡在SocketInputStream中。 当不使用缓存时,它会卡在waitForReferencePendingList方法的Reference类中: 我尝试了一切,在代码中明确关闭连接,比如更新OkHttp的版本,但仍然是一样的。有什么想法吗 如果需要,是完成请求的完整代码,总结如下: Request request = new Re

我使用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));



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

是否有一个类使用main方法或类似方法来显示实际问题?项目中的测试通过了吗?url是否有特殊问题?调用响应对象的close()方法时是否有任何变化?@YuriSchimke在单元测试中一切正常,看起来它们迫使程序关闭。我的主类在另一个项目中,但它除了调用一个endpont之外什么都不做,比如
User User=new TwitterClient().getUserFromUserName(“RedouaneBali”)
@rmunge调用close()时没有任何更改,唯一的更改是在发出带缓存或不带缓存的请求时,但在这两种情况下,程序被卡住。