【发布时间】:2019-08-27 20:30:29
【问题描述】:
我有一个 android 应用程序,我正在尝试使用 okHttp 版本 3.13.1 进行 http/2 调用,在我的情况下,对于一个请求,我将依次从服务器接收两个响应,但使用 okHttp 客户端我是只得到一个响应,如果我尝试使用 curl 命令发送请求,我将从服务器依次收到两个响应。
有没有办法在 android 中处理单个 http/2 请求的多个响应?
我尝试了各种方法,但没有运气:(如果有人可以提供您的意见,那将非常高兴。
提前感谢您的帮助和时间!!!
我基本上是使用 okHttp 客户端从我的 android 应用程序向支持 http/2 的服务器发送一个 get 请求,因此希望及时收到该单个请求的 2 个不同响应。即第二个响应将从服务器在收到第一个响应的 5 秒间隔后。
以下是我的回复:
第一反应 事件:初始化
{"session_id":"df313001-6461-431c-bcc1-7cb931bda4f5","deviceId":"YL0012345678"}
第二反应
事件:voice_response
数据:{"intents":[{"version":0,"intent":"telstra_intent_voice","params":{"voiceResponse":{"displayText":"Launching now","vuiFileName":"E03.01.P2.V01.E.wav"},"action":{"ecp":"/launch-install/71361"}}}],"deviceId":"YL0012345678","channelId":"269671"}
但是,就我而言,一旦我收到第一个响应,客户端就不再向服务器列出。当我收到第一个回复时,在我的日志中我看到: com.example.okhttp3 D/OkHttp:
感谢您的帮助!
【问题讨论】:
-
当您说多重响应时,这究竟意味着什么?你有两个不同的 json 结构吗?您是否(出于某种原因)期待两个响应,一个接一个,相隔一段时间?
-
@farhanjk - 当我说多个响应时,正如你所说,我期待 2 个响应一个接一个,由大约 3 到 4 秒的特定时间间隔隔开。
-
@farhanjk - 我认为 github.com/launchdarkly/okhttp-eventsource 更像是一个消息传递应用程序。它不适用于我的情况:(