SSE 的规范中明确指出,每个事件的结构中的 field 只能是以下几个取值: * event * data * id * retry **所有其他的字段名都会被忽略。** > [https://developer.mozilla.org/zh-CN/docs/Web/API/Server-> sent_...](https://link.segmentfault.com/?enc=QB7pmkpN%2BIRpe8ly4Ih0Qw%3D%3D.m8g%2B7EsFQowdp0l99Hz1zJUDQPuwzioGa1LjO3SB66ZKuMOHKK5YaPkrbMV3a2LVUlkR4s9jDeVBKhrwI6Ewjgx99ckFHHzK6pdMi%2BNzgd5cO9PcNZuDs%2BPPJDp3rwD78u8HsTHJhAes05bV%2Fftsbg%3D%3D) 显然 OkHttp 在解析事件时遵守了此规范。从源码中我们也可以看出这一点: > [https://github.com/square/okhttp/blob/okhttp_3.14.x/okhttp-> sse/src/main/java/okhttp3/internal/sse/ServerSentEventReader.java#L55-L102](https://link.segmentfault.com/?enc=gQoLM7mvNymzm%2FDk%2BCo%2BWg%3D%3D.j9UuypYX19or6Equq9X7o0gbfLamO3DXTUV70R%2F%2F0lq8qs3z3uFKQni5Ft9S1iNwXB4qXo7lxPHN%2F2RcvNdTgw%2FL%2FcbaOhs%2FoeOjwKPVkHBPUoB9H%2FK2QNkDQdKuNgEaI6FHgCrhom13gqyhgBQUbMFKnZrqxcrkY7%2BhThK9OrD8vMcEmvV0QwoPhv6zQYmq) 所以你这里的问题是上游系统使用了**非标准的** SSE 协议。如果上游服务不做修改的话,你只能从底层的 HttpClient 自己动手撸一个 Parser 来处理这种特殊场景了。