HttpWebRequest采集读取网站挂载Cookie的通用方法

Asp.net 版本

HttpWebRequest采集时添加:httpWebRequest.CookieContainer = new CookieContainer();就能远程挂载上cookie,那么怎样去读取挂载上的cookie呢?

下面方法为大家解除烦恼。

遍历方法:

public static List<Cookie> GetAllCookies(CookieContainer cc)
{
    List<Cookie> lstCookies = new List<Cookie>();

    Hashtable table = (Hashtable)cc.GetType().InvokeMember("m_domainTable", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, cc, new object[] { });
    StringBuilder sb = new StringBuilder();
    foreach (object pathList in table.Values)
    {
        SortedList lstCookieCol = (SortedList)pathList.GetType().InvokeMember("m_list", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance, null, pathList, new object[] { });
        foreach (CookieCollection colCookies in lstCookieCol.Values)
            foreach (Cookie c in colCookies)
            {
                lstCookies.Add(c);
                sb.AppendLine(c.Domain + ":" + c.Name + "____" + c.Value + "\r\n");
            }
    }
    return lstCookies;
}

使用:

List<Cookie> _cookieList = GetAllCookies(req.CookieContainer);
string _cookieValue = _cookieList[0].ToString();

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏lgp20151222

drool-6.5的自学demo

1152
来自专栏技术之路

动态生成TreeView方法(一)

一般情况下生成TreeView我们用的是用递归不建议用递归数据量大了会慢, 小弟今天用SortedList集合实现一下没有技术含量,一看代码大家就会明白。个人也...

1856
来自专栏魂祭心

原 数据字典+匿名委托模拟switch/c

2869
来自专栏Kotlin入门系列

C#控制台基础 将十六进制的字符串 转换成 十进制数

4155
来自专栏C# 编程

线程、委托、lambda运算符的简单示例

using System; using System.Collections.Generic; using System.Linq; using System...

2200
来自专栏别先生

fastjson如何判断JSONObject和JSONArray

1、fastjson如何判断JSONObject和JSONArray,百度一下,教程还真不少,但是是阿里的fastjson的我是没有找到合适的方法。这里用一个还...

8752
来自专栏C# 编程

C# 基于泛型的自定义线性节点链表集合示例

本例子实现了如何自定义线性节点集合,具体代码如下: using System; using System.Collections; using System.C...

2130
来自专栏跟着阿笨一起玩NET

linq to sql 三层架构中使用CRUD操作

1321
来自专栏hbbliyong

.Net下SQLite的DBHelp

怎样获取SqLite请参考初识SqlLite ---.net连接数据库,怎样在SQLite使用Linq请参考在C#中利用Nuget包使用SQLite数据库和Li...

3004
来自专栏菩提树下的杨过

泛型List<T>使用示例

代码来源于"c#高级编程(第4版)",略作修改 using System; using System.Collections; using System.C...

1887

扫码关注云+社区