我试图将一个Android设备连接到带有websockets的Digest安全服务器,但我一直在获得401 Unauthorized返回。
我已经设法使用apache.http(支持Digest)对同一服务器进行POST和GET,并且可以通过返回在初始请求期间收到的cookie继续发送这些基本命令但这些相同的cookie不起作用当我用websocket握手发送它们时。
我已经嗅到了数据包,并且可以看到,正如预期的那样,即使成功的连接也从401开始,apache库从中提取必要的信息并重新发送具有所有Digest哈希等的Authorization标头。返回一个新的,经过批准的回复,其中包含我抓取并存储以供将来使用的Cookie。
我的假设是,在从http://地址更改为ws://地址时,我需要重新进行身份验证,但我还没有找到支持身份验证的android websocket库以及我找到的那些经过测试,请不要让我看到服务器的401响应(再次,看到它存在于两者之间嗅探数据包,它包含了生成新的摘要响应所需的所有信息,即使这意味着写作我自己)。
非常感谢任何帮助/建议。
相关但不成功的问题我仍然开放:
Open WebSocket connection with authentication cookie
Websockets and cookies in Android
经过测试的库:
高速公路
AndroidAsync
Java-Websocket(目前正在推进这个)