java - OkHttp3 newCall.execute() 导致挂起。HttpUrlConnection 代码工作正常
问题描述
我的问题是以下语句导致退出程序挂起至少 30 秒。
OkHttpClient client = new OkHttpClient.Builder().build();
...
Request request = new Request.Builder()
.method("POST", RequestBody.create(mediaType, ""))
.url(myURL)
.addHeader("Content-Type", "application/json").build();
...
try (Response response = client.newCall(request).execute()) //! Causes hang for some reason
{
resBody = response.body().string();
}
这个方法通过了,我得到了成功的响应。但是当程序到达最后一条语句时,它会多挂起大约 30 秒。
如果我切换到使用 HttpUrlConnection 代码,则不会出现任何问题。
我尝试使用 jstack 但不确定我在看什么。你也不能用jstack“尾随”。OkHttp3 lib 的某些原因导致了这种情况。
如果您需要一些详细信息,我正在使用https mulesoft API。但是 Mulesoft 应用程序日志显示一个干净的请求和响应,没有错误。
有任何想法吗?
解决方案
https://github.com/square/okhttp/issues/5832 - 表示只需获取 OkHttp3 的最新库。
推荐阅读
- python - Python:如果公式不适用于数据框 | ValueError:DataFrame 的真值不明确
- c# - 在 Oculus Rift 中记录运动学数据
- firebase - 如何从 firebase cli 中删除 firestore
- javascript - 如何更新动画圈的实时 ajax 请求
- python - 如何将日期字符串转换为数字
- r - 合并满足条件的唯一 group_by 行并使用 tidyverse 进行汇总
- html - 引导模式:高度变化的过渡
- python - Scrapy 爬了 0 页蜘蛛
- ios - 是否允许通过免费试用 AutoRenewable 订阅强制用户订阅,否则根本无法使用该应用程序?
- python - 在 64 位 python 中打开一个 64 位 COM 程序