中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Asp.net http 請求獲取站點任意Cookie

發布時間:2020-07-15 18:09:13 來源:網絡 閱讀:1023 作者:點兒都不扯 欄目:編程語言
搞Asp.net的朋友,難免會有需要發送一些http請求,網頁數據抓取的時候!

有一些安全性相對做得比較好點的站點,某些東西做得相對比較“安全”!!

對于做WINDOWS平臺下開發的朋友來說,了解windows原理,一些window的API、

這會大大提示您的編程效率,我個人覺得,用好 Window API 非常的有必要,也是程序員的必備知識




wininet.dll 
-----------------------------------------------------------------------------------------
搞C,C++的程序員,不會陌生吧、這個組件概而言之 就是對 

internet ,ftp , http 底層做基礎封裝的編程接口!!!!!!



    ///<summary> 
    /// 獲取Cookie的方法類。 
    ///</summary> 
    public class CookieUtility
    {
        ///url :你請求的站點地址、
        ///cookieName:cookie名稱,獲取全部cookie傳null、
        ///cookieData:cookie數據保存對象,數據會保存到這個對象中。
        ///size:獲取到的實際數據大小。        
        [DllImport("wininet.dll", SetLastError = true)]
        public static extern bool InternetGetCookie(string url, string cookieName, StringBuilder cookieData, ref int size);
        
        
        ///url :你請求的站點地址、
        ///cookieName:cookie名稱,獲取全部cookie傳null、(建議傳null)
        ///cookieData:cookie數據保存對象,數據會保存到這個對象中。
        ///size:獲取到的實際數據大小。 
        ///dwFlags:cookie的標志(位或運算,目前我接觸到的只有:
        /// (0x00002000,httpreadonly)    
        /// lpReserved:保留參數對象(有知道的朋友請留言回復下,謝謝!)
        [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();
        
        
        /// 下面這個方法是獲取到cookie后,對cookie字符串進行拆分重組的。
        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;
        }
    }


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

延吉市| 绥滨县| 武宣县| 永丰县| 阿巴嘎旗| 佳木斯市| 冀州市| 阿荣旗| 安徽省| 永丰县| 陆川县| 通榆县| 阳新县| 佛冈县| 屯留县| 萍乡市| 洪雅县| 兰溪市| 大足县| 兴义市| 扬中市| 当阳市| 内江市| 兴安盟| 富川| 邵武市| 定南县| 唐河县| 沙坪坝区| 云龙县| 罗平县| 渝北区| 彭泽县| 七台河市| 屯留县| 克拉玛依市| 弥渡县| 四会市| 邵武市| 温宿县| 道孚县|