1

我正在使用 Unity 引擎开发游戏,该引擎必须将 cookie 从客户端 C# 发送到服务器端 - Java,我面临这个问题(可能是跨平台问题?我不确定)

我像这样在客户端写了一堆代码

private HttpWebRequest request(){
    try{
        string url = "http://localhost:8080/...";
        var request = (HttpWebRequest)WebRequest.Create(url);
        request.Timeout = 15000;
        request.KeepAlive = true ;
        request.Method= "GET";

        CookieContainer cookieContainer = new CookieContainer();
        Cookie Authentication = new Cookie("Session" , "09iubasd");
        Authentication.Domain = url;
        cookieContainer.Add(Authentication);
        request.CookieContainer = cookieContainer;
        request.Headers.Add("testting", "hascome");
        return request;
    }catch(System.Exception ex){
        Debug.Log("[Exception]" + ex);
        throw ex;
    }

}

并且服务器端是用Java Spring编写的。我无法在服务器端检索 CookieContainer 内的 Cookie 数据。谁能给我任何建议或任何解决方案来解决这个问题?或者类似于 Java 中的 CookieContainer 的东西。我用谷歌搜索但似乎没有办法,如果这是一个愚蠢的问题,那么请教我。非常感谢。文斯

4

1 回答 1

1

我只是找出原因,我的 cookie 域设置错误。

这是我刚刚修复的新测试代码。希望对以后遇到同样问题的人有所帮助(当然,如果没有人遇到这个愚蠢的问题,那一定很棒)

private HttpWebRequest request(){
    try{
        System.Uri uri = new System.Uri("http://localhost:8080/...");
        var request = (HttpWebRequest)WebRequest.Create(uri);
        request.Timeout = 15000;
        request.KeepAlive = true ;
        request.Method= "GET";

        Cookie Authentication = new Cookie("Session" , "09iubasd");
        Authentication.Domain = uri.Host;
        request.CookieContainer = new CookieContainer();
        request.CookieContainer.Add(Authentication);
        request.Headers.Add("testting", "hascome");
        return request;
    }catch(System.Exception ex){
        Debug.Log("[Exception]" + ex);
        throw ex;
    }

}
于 2016-06-16T11:10:48.647 回答