获取Cookie或者设置Cookie
public class CookieHelper
{
[DllImport("Kernel32.dll")]
private extern static int FormatMessage(int flag, ref IntPtr source, int msgid, int langid, ref string buf, int size, ref IntPtr args);
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);
[DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int InternetSetCookieEx(string lpszURL, string lpszCookieName, string lpszCookieData, int dwFlags, IntPtr dwReserved);
public static string GetCookies(string url)
{
uint datasize = 256;
StringBuilder cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x40, IntPtr.Zero))
{
cookieData = new StringBuilder((int)datasize);
if (!InternetGetCookieEx(url, null, cookieData, ref datasize, 0x40, IntPtr.Zero))
return null;
}
return cookieData.ToString();
}
public static int SetCookies(string url, string cookieName, string cookieData, DateTime expiresDate)
{
cookieData = string.Format("{0}={1};path=/;expires={2}"
, cookieName
, cookieData
, expiresDate.ToString("r"));
return InternetSetCookieEx(url, null, cookieData, 0x40, IntPtr.Zero);
}
/// <summary>
/// 获取错误提示
/// </summary>
/// <returns></returns>
public static string GetErrMsg()
{
var code = Marshal.GetLastWin32Error();
var tempptr = IntPtr.Zero;
string msg = null;
FormatMessage(0x1300, ref tempptr, code, 0, ref msg, 255, ref tempptr);
return msg;
}
}
public class Program
{
const string domain = "http://yourdomain";
public static void Main()
{
try
{
SetCookie();
DisplayCookie();
}
catch (Exception e)
{
Console.WriteLine("\nError:{0}", e.Message);
}
finally
{
Console.WriteLine("\nfinished,any key to continue...");
Console.ReadKey();
}
}
private static void SetCookie()
{
var result = CookieHelper.SetCookies(domain, "TestCookie", "IAAAA", DateTime.Now.AddYears(-1));
Console.WriteLine(result);
Console.WriteLine(CookieHelper.GetErrMsg());
}
private static void DisplayCookie()
{
Console.WriteLine(CookieHelper.GetCookies(domain));
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
2019-08-27 Django文档
2019-08-27 Django Nginx+uwsgi 安装配置
2016-08-27 研发团队管理