Java 在Android上创建摘要WebSocket连接

Java 在Android上创建摘要WebSocket连接,java,android,websocket,java-websocket,Java,Android,Websocket,Java Websocket,正如问题所暗示的,我正试图将一台Android设备连接到一台带有WebSocket的摘要安全服务器,但我一直收到401份未经授权的退货 我已经设法使用apache.http发布和访问同一服务器,apache.http支持摘要,可以通过返回在初始请求期间收到的cookies继续发送这些基本命令,但当我使用websocket握手发送cookies时,这些cookies不起作用 我嗅探了这些数据包,可以看出,正如预期的那样,即使成功的连接也是从401开始的,apache库从401中提取必要的信息,并使

正如问题所暗示的,我正试图将一台Android设备连接到一台带有WebSocket的摘要安全服务器,但我一直收到401份未经授权的退货

我已经设法使用apache.http发布和访问同一服务器,apache.http支持摘要,可以通过返回在初始请求期间收到的cookies继续发送这些基本命令,但当我使用websocket握手发送cookies时,这些cookies不起作用

我嗅探了这些数据包,可以看出,正如预期的那样,即使成功的连接也是从401开始的,apache库从401中提取必要的信息,并使用所有摘要哈希等重新发送授权标头。这将返回一个新的、经批准的响应,其中包含我正在获取和存储的cookie,以供将来使用

我的假设是,在从http://地址更改为ws://地址的过程中,我需要重新验证,但我还没有找到支持身份验证的android websocket库,并且我找到并测试的那些库不允许我再次看到服务器的401响应,可以看出,它是通过嗅探两者之间的数据包而存在的,它包含生成新摘要响应所需的所有信息,即使这意味着要自己编写

如有任何帮助/建议,将不胜感激

相关但不成功的问题我还有待解决:

测试库:

高速公路

雄激素同步


目前正在使用此

的Java Websocket具有HTTP摘要处理程序和Websocket处理程序。该库在Android上运行良好,但上次我发现它对于我的需求来说太重了。我不确定Digest模块是否能很好地与WebSocket配合使用,但即使不能,他们的模块化设计也应该使您能够相对轻松地使用垫片来支持这一点。感谢Saran,我目前正在使用默认实现Netty的AssyncHttpClient,但在授权WebSocket时遇到了问题。我可以毫无问题地发出HTTP请求,但某些元素要么没有收到401,要么忽略了401。我担心后者,因为我可以看到来自android的应答包ping回来。当我拿到401时,我会尝试自己处理授权,但我觉得这有点太麻烦了,d.I.y.Netty允许你设置一堆入站/出站处理程序。我可以想象,您可以将摘要验证器放在所有其他内容之前,以便所有基于HTTP的流量必须首先通过。。。