搞Asp.net的朋友,難免會(huì)有需要發(fā)送一些http請(qǐng)求,網(wǎng)頁(yè)數(shù)據(jù)抓取的時(shí)候! 有一些安全性相對(duì)做得比較好點(diǎn)的站點(diǎn),某些東西做得相對(duì)比較“安全”??! 對(duì)于做WINDOWS平臺(tái)下開(kāi)發(fā)的朋友來(lái)說(shuō),了解windows原理,一些window的API、 這會(huì)大大提示您的編程效率,我個(gè)人覺(jué)得,用好 Window API 非常的有必要,也是程序員的必備知識(shí) wininet.dll ----------------------------------------------------------------------------------------- 搞C,C++的程序員,不會(huì)陌生吧、這個(gè)組件概而言之 就是對(duì) internet ,ftp , http 底層做基礎(chǔ)封裝的編程接口!?。。。?! ///<summary> /// 獲取Cookie的方法類(lèi)。 ///</summary> public class CookieUtility { ///url :你請(qǐng)求的站點(diǎn)地址、 ///cookieName:cookie名稱(chēng),獲取全部cookie傳null、 ///cookieData:cookie數(shù)據(jù)保存對(duì)象,數(shù)據(jù)會(huì)保存到這個(gè)對(duì)象中。 ///size:獲取到的實(shí)際數(shù)據(jù)大小。 [DllImport("wininet.dll", SetLastError = true)] public static extern bool InternetGetCookie(string url, string cookieName, StringBuilder cookieData, ref int size); ///url :你請(qǐng)求的站點(diǎn)地址、 ///cookieName:cookie名稱(chēng),獲取全部cookie傳null、(建議傳null) ///cookieData:cookie數(shù)據(jù)保存對(duì)象,數(shù)據(jù)會(huì)保存到這個(gè)對(duì)象中。 ///size:獲取到的實(shí)際數(shù)據(jù)大小。 ///dwFlags:cookie的標(biāo)志(位或運(yùn)算,目前我接觸到的只有: /// (0x00002000,httpreadonly) /// lpReserved:保留參數(shù)對(duì)象(有知道的朋友請(qǐng)留言回復(fù)下,謝謝?。? [DllImport("wininet.dll", CharSet=CharSet.Auto, SetLastError = true)] static extern bool InternetGetCookieEx(string url, string cookieName, StringBuilder cookieData, ref int size, int dwFlags, object lpReserved); [DllImport("Kernel32.dll", SetLastError = true)] private static extern int GetLastError(); /// 下面這個(gè)方法是獲取到cookie后,對(duì)cookie字符串進(jìn)行拆分重組的。 public static CookieContainer GetUriCookieContainer(Uri uri) { CookieContainer cookies = null; int datasize = 2048; StringBuilder cookieData = new StringBuilder(datasize); if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize)) { int errCode = GetLastError(); if (datasize < 0) return null; cookieData = new StringBuilder(datasize); if (!InternetGetCookie(uri.ToString(), null, cookieData, ref datasize)) { errCode = GetLastError(); return null; } } if (cookieData.Length > 0) { cookies = new CookieContainer(); string[] cooks = cookieData.ToString().Split(';'); for (int i = 0; i < cooks.Length; i++) { if (cooks[i].IndexOf(',') == -1) cookies.SetCookies(uri, cooks[i]); } } return cookies; } public static string GetCookiesString(CookieContainer cookies, Uri uri) { if (cookies == null || uri == null) return ""; CookieCollection cc = cookies.GetCookies(uri); string szCookies = ""; foreach (Cookie cook in cc) { szCookies = szCookies + cook.Name + "=" + cook.Value + ";"; } return szCookies; } }
分享文章:Asp.nethttp請(qǐng)求獲取站點(diǎn)任意Cookie
文章來(lái)源:http://chinadenli.net/article40/gehjho.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、微信小程序、全網(wǎng)營(yíng)銷(xiāo)推廣、電子商務(wù)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)