Android/Socket.io客户端-如何在与服务器握手时发送cookie



我正在尝试(未成功)连接socket.io服务器,但不断收到相同的错误:由CCD_ 2引起的CCD_。

我刚刚发现,我应该在握手时发送一个带有以下值的cookie:域、路径、名称和值。在尝试了几种可能的方法(基于这个和这个)之后,我最终得到了这段代码,但它仍然不起作用:

String cookieString = "domain=" + "my.domain.name.com" + ";path=" + "/" + ";name=" + "auth" + ";value=" + "XXXXXtokenXXXXX";
CookieManager.getInstance().setCookie("http://my.domain.name.com:8080/", cookieString);
String header = CookieManager.getInstance().getCookie("my.domain.name.com:8080/");
final SocketIO socket = new SocketIO("my.domain.name.com:8080/");
socket.addHeader("Cookie", header);
socket.connect(new IOCallback()
{
    ...
}

CookieManager.getInstance().getCookie(...)一直返回null,并且连接仍然失败。

有人能帮我在信头上加一块饼干吗?

记录在案,我不知道它会改变什么,但我正在使用这个库:https://github.com/Gottox/socket.io-java-client

提前感谢您的帮助!

Mathieu

好吧,以防万一有人需要解决方案,我终于解决了这个问题。其实很简单:

        String cookie = "domain="http://my.domain.name.com:80";path="/";name="auth";value="XXXXtokenXXXX"";
        socket = new SocketIO("http://my.domain.name.com:80/");
        socket.addHeader("Cookie", cookie);
        socket.connect(new IOCallback()
        {
            ...
        }

因此,您只需要创建一个形式为"key1=value1;key2=value2…"的字符串,并使用方法addHeader("Cookie", youCookieString);将其作为头添加到套接字中。

记录在案,我一直收到错误ECONNREFUSED,因为我试图连接错误的端口(8080而不是80)。。。

相关内容

  • 没有找到相关文章

最新更新