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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章