用万能框架写了一个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. C#的MD5哈希值计算

    MD5哈希值计算:(仅仅是记录一下) /// <summary> /// 获取字符串的MD5值 /// </summary> /// <param name=" ...

  2. [Jobdu] 题目1529:棋盘寻宝

    题目描述: 现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应 ...

  3. DMA&PIO

    DMA&PIO   DMA的英文拼写是“Direct Memory Access”,汉语的意思就是直接内存访问,是一种不经过CPU而直接从内存存取数据的数据交换模式.在DMA模式下,CPU只须 ...

  4. GIS(一)——在js版搜索地图上加入Marker标记

    因为我们做的是有关于旅游方面的项目,所以涉及到了地图功能.我接到的当中一个任务就是,在地图上显示指定的几个景点,并在地图上加上标记. 我们项目用的是搜狗地图.使用的是js版本号.大家有兴趣的话,能够參 ...

  5. Spark的基本说明

    1.关于Application 用户程序,一个Application由一个在Driver运行的功能代码和多个Executor上运行的代码组成(工作在不同的节点上). 又分成多个Job,每个Job由多个 ...

  6. shell关于日期的加减

    $cat sh.sh #!/bin/bash ] ; then ydate=`date -d -1days "+%Y%m%d"` ydateother=`date -d -1day ...

  7. JAVA-JSP Scriptlets(JSP小脚本)

    相关资料: <21天学通Java Web开发> 结果总结: 1.<% %>可以包含多个语句,如:方法.变量.表达式.2.类型定义时,如:int.String必须注意大小写. 实 ...

  8. C# 回调与 javascritp 回调 比较

    C#: using System; using System.Collections.Generic; using System.Text; namespace Delegate { //定义委托,它 ...

  9. java日期工具类DateUtil-续二

    该版本是一次较大的升级,农历相比公历复杂太多(真佩服古人的智慧),虽然有规律,但涉及到的取舍.近似的感念太多,况且本身的概念就已经很多了,我在网上也是查阅了很多的资料,虽然找到一些计算的方法,但都有些 ...

  10. SQL Server 大数据量insert into xx select慢的解决方案

    最近项目有个需求,把一张表中的数据根据一定条件增删改到另外一张表.按理说这是个很简单的SQL.可是在实际过程中却出现了超级长时间的执行过程. 后来经过排查发现是大数据量insert into xx s ...