【发布时间】:2020-12-26 04:50:59
【问题描述】:
我使用 OkHttp3 4.8.1 为 Twitter API here 开发了一个 Java 库。
不幸的是,看起来在发送请求后,一旦一切完成,程序就永远不会停止并卡在SocketInputStream。
当不使用缓存时,它会卡在Reference类的waitForReferencePendingList方法中:
我尝试了一切,在我的代码中明确关闭连接,如this,更新 OkHttp 的版本,但仍然相同。有什么想法吗?
如果需要,here 是完成请求的完整代码,总结如下:
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));
【问题讨论】:
-
是否有一个具有主要方法或类似方法的类可以显示实际问题?项目中的测试通过了吗?有没有特别的问题url?
-
调用 Response 对象的 close() 方法有什么变化吗?
-
@YuriSchimke 在单元测试中一切正常,看起来他们强制程序关闭。我的主要课程在另一个项目中,但它除了调用一个端点,如
User user = new TwitterClient().getUserFromUserName("RedouaneBali"); -
@rmunge 在调用 close() 时没有任何变化,唯一的变化是在使用或不使用缓存的情况下发出请求,但在这两种情况下程序都卡住了。
标签: java twitter connection okhttp