用万能框架写了一个DZ带验证码POST登录一直错误 http://www.sufeinet.com/thread-17795-1-1.html 调试半天发现是框架GetMergeCookie的问题,,,真坑。。。

OldCookie

F9ZL_2132_saltkey=oHLnJLwj;
F9ZL_2132_lastvisit=;
F9ZL_2132_sid=ZsTR8p;
F9ZL_2132_lastact=%09member.php%09logging;
F9ZL_2132_pc_size_c=;
F9ZL_2132_stats_qc_reg=deleted

NewCookie

F9ZL_2132_lastact=%09misc.php%09seccode

HttpHelper.GetMergeCookie 合并更新后  导致有两个 F9ZL_2132_lastact=

F9ZL_2132_saltkey=oHLnJLwj ;
F9ZL_2132_lastvisit= ;
F9ZL_2132_sid=ZsTR8p ;
F9ZL_2132_lastact=%09member.php%09logging ;
F9ZL_2132_pc_size_c= ;
F9ZL_2132_stats_qc_reg=deleted ;
F9ZL_2132_lastact=%09misc.php%09seccode

正确更新:

F9ZL_2132_saltkey=oHLnJLwj;
F9ZL_2132_lastvisit=;
F9ZL_2132_sid=ZsTR8p;
F9ZL_2132_lastact=%09misc.php%09seccode;
F9ZL_2132_pc_size_c=;
F9ZL_2132_stats_qc_reg=deleted

找了个方法解决了这个,账号也登录成功了。勿喷,,不知道框架那个是不是BUG。。。

public static string MergerCookies(string OldCookie, string NewCookie)
{
if (!string.IsNullOrEmpty(OldCookie) && !string.IsNullOrEmpty(NewCookie))
{
if (OldCookie == NewCookie) return OldCookie;
else
{
List<string> Old = new List<String>(OldCookie.Split(';'));
List<string> New = new List<String>(NewCookie.Split(';'));
foreach (string n in New)
{
foreach (string o in Old)
{
if (o == n || o.Split('=')[] == n.Split('=')[])
{
Old.Remove(o);
break;
}
}
}
List<string> list = new List<string>(Old);
list.AddRange(New);
return string.Join(";", list.ToArray());
}
}
else if (!string.IsNullOrEmpty(OldCookie)) return OldCookie;
else if (!string.IsNullOrEmpty(NewCookie)) return NewCookie;
else return "";
}

HttpHelper万能框架GetMergeCookie的问题的更多相关文章

  1. C#使用HttpHelper万能框架,重启路由器

    首先声明,不是所有路由器都可以通过下面的代码来让路由器执行重启. 下面的代码测试的路由器是(TP-LINK TD-W89841N增强型).要根据自己的路由器来写代码. using CsharpHttp ...

  2. C# HttpHelper万能框架实现 接口

    POST请请求是使用Http协议与请求的URL进行连接,然后再写入数据,最后关闭连接的过程 方法(1) //要Post的数据 string postdate = "a=123&c=4 ...

  3. HttpHelper万能框架V1.6

    下载地址:http://yun.baidu.com/share/link?uk=1745303310&shareid=1343567367 引入:System.Web和System.Web.E ...

  4. C#爬虫之~苏飞万能框架使用教程

    苏飞的框架帮助类,很多人应该都知道,不知道可以百度,此处直接说用法. //引入命名空间 using CsharpHttpHelper; //创建Httphelper对象 HttpHelper http ...

  5. 解决C#调用执行js报检索 COM 类工厂中 CLSID 为 {0E59F1D5-1FBE-11D0-8FF2-00A0D10038BC} 组件失败

    最近做了一个模拟请求的网站简化原网站的繁琐数据,提出有用的数据简单展示并完成post.由于原网站数据有js加密,所以我抓出原网站的js解密方法,由C#调用js得到解密后的数据. 整个抓包的框架是用的苏 ...

  6. WebGL three.js学习笔记 创建three.js代码的基本框架

    WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...

  7. Java 程序员必备的 15 个框架,前 3 个地位无可动摇!

    Java 程序员方向太多,且不说移动开发.大数据.区块链.人工智能这些,大部分 Java 程序员都是 Java Web/后端开发.那作为一名 Java Web 开发程序员必须需要熟悉哪些框架呢? 今天 ...

  8. 知识工程.Vs.软件构架,框架,设计模式.

    软件工程-原文链接:http://tech.it168.com/a2009/0902/672/000000672853.shtml 此文章详细给出了软件设计的基本概念和用途,文章链接:http://w ...

  9. 获取在线人数 CNZZ 和 51.la

    string Cookies = string.Empty; /// <summary> /// 获取在线人数 (51.la统计器) /// </summary> /// &l ...

随机推荐

  1. js判断输入是否为数字的具体实例

    这篇文章介绍了js判断输入是否为数字的具体实例,有需要的朋友可以参考一下 <html xmlns="http://www.3lian.com/"> <head&g ...

  2. WCF小问题总汇

    1.Q: WCF服务有没有构造函数或者静态构造函数? A:都不可用 2.Q: WCF中如何使用全局变量? A:用session绑定,或者静态变量 3.Q: WCF在WPF一直报xaml错误 A:不要把 ...

  3. 苹果开发小记(一):NSString 的比较用法

    转自:http://blog.sina.com.cn/s/blog_897dd7be0100teh6.html 做了几个月的苹果,很多的思想方法都可以遵循一定规律来做的.NSString 比较字符串, ...

  4. Linux系统CPU的性能监控及调优

    前言: 性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢.接口超时,服务器负载高.并发数低,数据库频繁死锁等.尤其是在“糙快猛”的互联网开发模式大行其道的今天,随着系统访问量的日益增加和代码的 ...

  5. angular学习笔记(十四)-$watch(2)

    下面来看一个$watch的比较复杂的例子: 还是回到http://www.cnblogs.com/liulangmao/p/3700919.html一开始讲的购物车例子, 给它添加一个计算总价和折扣的 ...

  6. ny42 一笔画问题

    一笔画问题 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来. ...

  7. 又谈C++指针(1)

    写在前面的话:虽然这段代码中对于指针的使用是不正确的,但是我却在这个不正确的代码中发现了另一个错误,而且深感迷惑,所以打算将此博文推到首页,请各位帮忙回答个问题. 在项目中用到了以下一段代码,执行结果 ...

  8. navicat编辑记录 (zhuan)

    https://www.navicat.com.cn/manual/online_manual/cn/navicat/linux_manual/EditRecord.html ************ ...

  9. Python2 获取两日期之间的每一天

    import datetime def getEveryDay(begin_date,end_date): date_list = [] begin_date = datetime.datetime. ...

  10. 【WPF】ListBox使用DataTemplate 以及默认选中第一项Item

    ListBox中DataTemplate的用法如下 . <ListBox x:Name="areaLB" ItemsSource="{Binding AreaNum ...