东方财富sse接口无返回问题排查,OkHttp踩坑指南 背景项目中需要调用第三方金融数据服务的 SSEServer-Sent Events接口获取数据。原有代码使用 Java 原生的HttpURLConnection实现同步请求能够正常读取数据。后续需要将网络请求框架迁移至 OkHttp但在使用 OkHttp 发起相同请求时execute()方法会一直阻塞始终收不到服务器的响应。而原HttpURLConnection代码即使存在部分请求头设置错误依然能够正常工作。OkHttp 请求阻塞问题总结问题从HttpURLConnection迁移到 OkHttp 后请求同一个 SSE 接口时execute()一直阻塞无法获得响应。原因Host 请求头与 URL 域名不一致。请求 URL 是https://89.push.example.com/...代码里手动设置了Host: push.example.com少了子域89服务器检测到 Host 不匹配不返回任何响应也不关闭连接导致客户端一直等待。为什么HttpURLConnection没出问题HttpURLConnection会忽略手动设置的 Host强制使用 URL 中的域名。所以你“写错”了它也能正常工作。OkHttp 则完全信任你设置的 Host原样发送因此错误直接暴露。解决删除手动设置 Host 的代码让 OkHttp 自动生成即可。// 删除这行不要手动设置 Host// requestBuilder.header(Host, ...);核心教训迁移代码时不要照搬所有setRequestProperty尤其是Host。OkHttp 里让框架自动管理Host是最安全的。设置超时和开启请求日志能快速定位类似问题。