程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 隨手記一次利用webbowser控件打開網頁後cookie讀取,隨手記webbowser

隨手記一次利用webbowser控件打開網頁後cookie讀取,隨手記webbowser

編輯:C#入門知識

隨手記一次利用webbowser控件打開網頁後cookie讀取,隨手記webbowser


利用wininet.dll 組件讀取cookie :

[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);
private static string GetCookies(string url)
{
uint datasize = 1024;
StringBuilder cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x2000, IntPtr.Zero))
{
if (datasize < 0)
return null;

cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x00002000, IntPtr.Zero))
return null;
}
return cookieData.ToString();
}

備注:在cookie解析的過程中:

cookie的value中如果包含有,(逗號)的情況下,可用 %2C 替換掉

舉例:

CookieContainer cookieContainer = new CookieContainer();
string cookieStr = GetCookies("http://abc.com/");

string[] cookstr = cookieStr.Split(';');
foreach (string str in cookstr)
{
string[] data= str.Split('=');
if (data[1].Trim().ToString().IndexOf(',') != -1)
{
data[1] = data[1].Trim().ToString().Replace(",", "%2C");
}
Cookie ck = new Cookie(data[0].Trim().ToString(), data[1].Trim().ToString());
cookieContainer .Add(new Uri("http://abc.com/"), ck);
}

 

end。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved