java - 使用 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));
解决方案
最后client.connectionPool().evictAll();
在其他地方添加(在我的帖子请求中获取不记名令牌)解决了这个问题!
推荐阅读
- angular-material - 插值在 mat-form-field 内因 mat-error 无法正常工作
- python - 根据标记的一周分区拆分日期时间间隔
- c++ - 在 C++ 中使用指令和声明
- javascript - 即使我转发了端口,端口也关闭了
- python - 如何在 vpython 中实现两个球的重量?
- javascript - 在 NodeJS 中处理 MongooseArray 时如何测试代码
- c++ - 什么是 opengl 常量的合适类型名?
- firebase - Firebase 项目初始化错误:未为此项目设置云资源位置
- spring - Spring Batch 持久化作业元数据
- javascript - 如何从反应组件的所有详细信息标签中添加或删除“打开”属性?