欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

DotNet Compact Framework 中使用HttpWebRequest和HttpWebResponse时使用Cookie

程序员文章站 2023-02-27 19:10:02
在Windows CE上使用HttpWebRequest和HttpWebResponse时黙认是没有Cookie的,每次请求都会在服务器上创建一个新的会话,对于需要使用Sessio...

在Windows CE上使用HttpWebRequest和HttpWebResponse时黙认是没有Cookie的,每次请求都会在服务器上创建一个新的会话,对于需要使用Session的应用来说,这是不可接受的,在网上找了很久,找到这一篇文章,提供了一个CookieManager类来管理Cookie,感觉很好用。

如果你和我一样,要求不高,只是保证每次都能使用同一个会话的话,可以使用下面的代码:

private static string cookies = string.Empty;

private static void SaveCookie(HttpWebResponse response)
{
StringBuilder sb = new StringBuilder();
for(var i = 0; i < response.Headers.Count; i++)
{
if ("set-cookie".Equals(response.Headers.Keys[i].ToLower()))
{
sb.Append(response.Headers[i] + ";");
}
}
string s = sb.ToString();

if (s.IndexOf("JSESSIONID") >= 0)
{
if (string.IsNullOrEmpty(cookies))
{
cookies = s;
}
else
{
//Session Timeout, relogin
cookies = s;
Relogin();
}
}
}

private static void SetCookie(HttpWebRequest request)
{
request.Headers.Add("Cookie:" + cookies);
}