侧边栏壁纸
博主头像
墨雪飘影博主等级

玫瑰是我偷的,你爱的人是我杀的,不爱你是假的。

  • 累计撰写 50 篇文章
  • 累计创建 8 个标签
  • 累计收到 9 条评论
标签搜索

C#在WebBrowser下获取完整的Cookies(包括含HTTPOnly属性的)

墨雪飘影
2022-03-07 / 0 评论 / 0 点赞 / 55 阅读 / 1,115 字
温馨提示:
本文最后更新于 2022-03-07,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

最近做项目的时候需要模拟post请求取数据但用了普通的Cookies无法获取完整的Cookies信息 只是获取了一部分 ,导致取回来的是重新登陆的页面。后来经过不懈的精神,终于找到了方法实现获取HTTPOnly,下面直接贴代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;


namespace HQTX_BatchAddData
{undefined
    /// <summary>
    /// WinInet.dll wrapper
    /// </summary>
    internal static class CookieReader
    {undefined


        private const int INTERNET_COOKIE_HTTPONLY = 0x00002000;


        [DllImport("wininet.dll", SetLastError = true)]
        private static extern bool InternetGetCookieEx(
            string url,
            string cookieName,
            StringBuilder cookieData,
            ref int size,
            int flags,
            IntPtr pReserved);
        public static string GetCookie(string url)
        {undefined
            int size = 512;
            StringBuilder sb = new StringBuilder(size);
            if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))
            {undefined
                if (size < 0)
                {undefined
                    return null;
                }
                sb = new StringBuilder(size);
                if (!InternetGetCookieEx(url, null, sb, ref size, INTERNET_COOKIE_HTTPONLY, IntPtr.Zero))
                {undefined
                    return null;
                }
            }
            return sb.ToString();
        }
    }
}

————————————————
版权声明:本文为CSDN博主「_陈陆亮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/chenluliang/article/details/53335084

0

评论区