Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HttpWebRequest时保留会话_C#_Httpwebrequest_Session Cookies - Fatal编程技术网

C# 使用HttpWebRequest时保留会话

C# 使用HttpWebRequest时保留会话,c#,httpwebrequest,session-cookies,C#,Httpwebrequest,Session Cookies,在我的项目中,我使用C#应用程序客户端和tomcat6 web应用程序服务器。 我在C#客户端中编写了以下代码片段: 每次调用此方法时,我都会在服务器端获得一个新会话。 我想这是因为我应该在我的客户机中使用HTTP cookies。但是我不知道怎么做,你能帮我吗?你必须使用a并在调用之间保留实例 private CookieContainer cookieContainer = new CookieContainer(); public bool isServerOnline() {

在我的项目中,我使用C#应用程序客户端和tomcat6 web应用程序服务器。 我在C#客户端中编写了以下代码片段:

每次调用此方法时,我都会在服务器端获得一个新会话。 我想这是因为我应该在我的客户机中使用HTTP cookies。但是我不知道怎么做,你能帮我吗?

你必须使用a并在调用之间保留实例

private CookieContainer cookieContainer = new CookieContainer();
public bool isServerOnline()
{
        Boolean ret = false;

        try
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);
            req.CookieContainer = cookieContainer; // <= HERE
            req.Method = "HEAD";
            req.KeepAlive = false;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            if (resp.StatusCode == HttpStatusCode.OK)
            {
                // HTTP = 200 - Internet connection available, server online
                ret = true;
            }
            resp.Close();
            return ret;

        }
        catch (WebException we)
        {
            // Exception - connection not available
            Log.e("InternetUtils - isServerOnline - " + we.Status);
            return false;
        }
}
private-CookieContainer-CookieContainer=new-CookieContainer();
公共布尔isServerOnline()
{
布尔ret=false;
尝试
{
HttpWebRequest req=(HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);

req.CookieContainer=CookieContainer;//问得好!转移会话让我过去一直保持清醒,你解决了这个问题吗?我以前用过Guillaume的建议,好吧,但是我如何管理过期的cookie?CookieContainer会自动吗?谢谢,我尝试了一下,并让你知道这是否有效。但我有一个问题:cookie是否过期d我该如何管理?另一个问题,但我不应该从响应中获取Cookie?容器将被填充,您不必关心响应Cookie。此外,容器的大小是有限的,当达到限制时,过期的Cookie将被删除。ASP.Net mvc是服务器端框架。Cookie容器是客户端。因此是的,只要使用cookie,无论服务器端堆栈如何,它都可以工作。我可以使用此方法保留基本身份验证会话吗?我还可以为几个不同的用户名和密码对使用相同的cookie容器实例吗?
private CookieContainer cookieContainer = new CookieContainer();
public bool isServerOnline()
{
        Boolean ret = false;

        try
        {
            HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(VPMacro.MacroUploader.SERVER_URL);
            req.CookieContainer = cookieContainer; // <= HERE
            req.Method = "HEAD";
            req.KeepAlive = false;
            HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
            if (resp.StatusCode == HttpStatusCode.OK)
            {
                // HTTP = 200 - Internet connection available, server online
                ret = true;
            }
            resp.Close();
            return ret;

        }
        catch (WebException we)
        {
            // Exception - connection not available
            Log.e("InternetUtils - isServerOnline - " + we.Status);
            return false;
        }
}