在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);
}