Java 使用OkHttp请求时,程序卡在socketRead0方法中
我使用OkHttp3 4.8.1为Twitter API开发了一个Java库。 不幸的是,在发送了请求之后,一旦完成所有操作,程序就不会停止,并卡在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
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()时没有任何更改,唯一的更改是在发出带缓存或不带缓存的请求时,但在这两种情况下,程序被卡住。