C#论坛-玄机论坛-C#论坛-玄机宝盒-玄机类库-C#

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2753|回复: 7

[HttpCode使用手册] 如何为httpcode 设置字符串Cookie与自动维护字符串Cookie

[复制链接]
  • TA的每日心情
    慵懒
    前天 22:07
  • 签到天数: 84 天

    [LV.6]【武林翘楚】

    君临 发表于 2015-6-8 18:39:47 | 显示全部楼层 |阅读模式

    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    如有疑问,请加入官方群询问

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    HttpCode使用篇
    使用HttpCode时,请先引用 System.Web
    Framework 4.0 时需要引用  System.Web.Extensions


    如何为httpcode 设置字符串Cookie与自动维护Cookie


    使用Cookie对象自动维护Cookie例子:
    Post  请参考   
    如何使用httpcode发起POST请求
    http://bbs.msdn5.com/thread-551-1-1.html

    Get  请参考
    如何使用httpcode发起get请求
    http://bbs.msdn5.com/thread-550-1-1.html



    手动维护字符串Cookie  例子:

    [C#] 纯文本查看 复制代码
    
    HttpItems items = new HttpItems();//请求设置对象
    
    HttpHelpers helper = new HttpHelpers();//发起请求对象
    
    HttpResults hr = new HttpResults();//请求结果对象
    
    string cookie = "";//字符串方式处理
    
    items = new HttpItems(); //初始化请求对象,使其保持最新状态
    
    items.Cookie = cookie;  //使用字符串方式
    
    items.URL = "http://www.163.com/opt.php?do=login"; //请求URL地址
    
    items.Referer = "http://mrtx.163.com/"; //请求的Referer
    
    items.Method = "Post";//请求方式  Post
    
    items.Postdata = "username=ceshiyixia1&password=111111";//提交参数
    
    hr = helper.GetHtml(items); //正常模式得到请求结果
    
    //手动处理字符串Cookie方式   每次都需要剔除返回的hr.Cookie,并且需要与原先的cookie合并为新的Cookie
    
    string CookieStr =  new XJHTTP().ClearCookie(hr.Cookie); //首先,剔除 服务器返回cookie中的无用项 
    
    cookie = new XJHTTP().UpdateCookie(CookieStr, hr.Cookie);//接着手动合并两个Cookie ,组成新的cookie给字符串对象使用
    
    //第二次请求
    items = new HttpItems();
    
    items.URL = "http://mrtx.u193.com/";
    
    items.Referer = "http://mrtx.u193.com/";
    
    items.Cookie = cookie;
    
    hr = helper.GetHtml(items);
    


    自动维护字符串Cookie  例子:

    [C#] 纯文本查看 复制代码
    
    HttpItems items = new HttpItems();//请求设置对象
    
    HttpHelpers helper = new HttpHelpers();//发起请求对象
    
    HttpResults hr = new HttpResults();//请求结果对象
    
    string cookie = "";//字符串方式处理
    
    items = new HttpItems(); //初始化请求对象,使其保持最新状态
    
    items.Cookie = cookie;  //使用字符串方式
    
    items.URL = "http://www.163.com/opt.php?do=login"; //请求URL地址
    
    items.Referer = "http://mrtx.163.com/"; //请求的Referer
    
    items.Method = "Post";//请求方式  Post
    
    items.Postdata = "username=ceshiyixia1&password=111111";//提交参数
    
    #region 自动处理字符串Cookie方式(新)  
    
    //使用ref将cookie传递进  GetHtml  重载方法    每次会   自动合并   上次  与  本次返回的cookie
    
    hr = helper.GetHtml(items,ref cookie); 
    
    #endregion
    //多次请求
    items = new HttpItems();
    
    items.URL = "http://mrtx.u193.com/";
    
    items.Referer = "http://mrtx.u193.com/";
    
    items.Cookie = cookie;
    
    //注意 如果有其他请求 请使用以下调用方式,保持cookie每次被自动合并
    hr = helper.GetHtml(items,ref cookie);
    
    







    手动处理Cookie的几种常用方式
    [C#] 纯文本查看 复制代码
    
    new XJHTTP().UpdateCookie("旧Cookie", "请求后的Cookie");//合并Cookie,将cookie2与cookie1合并更新 返回字符串类型Cookie
    
    new XJHTTP().StringToCookie("网站Domain", "字符串Cookie内容");//将文字Cookie转换为CookieContainer 对象
    
    new XJHTTP().CookieTostring("CookieContainer 对象");//将 CookieContainer 对象转换为字符串类型
    
    new XJHTTP().GetAllCookie("CookieContainer 对象");//得到CookieContainer中的所有Cookie对象集合,返回List<Cookie>
    
    new XJHTTP().GetCookieByWininet("网站Url");//从Wininet 中获取字符串Cookie 可获取IE与Webbrowser控件中的Cookie
    
    new XJHTTP().GetAllCookieByHttpItems("请求设置对象");//从请求设置对象中获取Cookie集合,返回List<Cookie>
    
    new XJHTTP().ClearCookie("需要处理的字符串Cookie");//清理string类型Cookie.剔除无用项返回结果为null时遇见错误.
    
    new XJHTTP().SetIeCookie("设置Cookie的URL", "需要设置的Cookie");//可设置IE/Webbrowser控件Cookie
    
    new XJHTTP().CleanAll();//清除IE/Webbrowser所有内容 (注意,调用本方法需要管理员权限运行) CleanHistory();清空历史记录  CleanCookie(); 清空Cookie CleanTempFiles(); 清空临时文件
    
    




    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-2-6 08:27
  • 签到天数: 9 天

    [LV.3]【仗剑天涯】

    milest 发表于 2015-11-4 22:37:25 | 显示全部楼层
    真不错!!!!
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-5-30 07:23
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    njjwdy 发表于 2016-5-15 01:25:00 来自手机 | 显示全部楼层
    milest 发表于 2015-11-4 22:37
    真不错!!!!

    现在是不是可以用
    System.Net.CookieContainer cc = new System.Net.CookieContainer();//自动处理Cookie对象
    来自动处理了,手动处理还有必要吗?
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2017-5-30 07:23
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    njjwdy 发表于 2016-5-19 11:23:01 | 显示全部楼层
    现在是不是可以用
    System.Net.CookieContainer cc = new System.Net.CookieContainer();//自动处理Cookie对象
    来自动处理了,手动处理还有必要吗?
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    前天 22:07
  • 签到天数: 84 天

    [LV.6]【武林翘楚】

     楼主| 君临 发表于 2016-5-19 13:04:04 | 显示全部楼层
    njjwdy 发表于 2016-5-19 11:23
    现在是不是可以用
    System.Net.CookieContainer cc = new System.Net.CookieContainer();//自动处理Cookie对 ...

    CookieContainer  对象对于跨域时的cookie处理起来存在问题.
    所以允许使用字符串方式维护Cookie.使用时仅需要设置一次即可.
    每次仅需要如下方式调用.
    [C#] 纯文本查看 复制代码
    
    items.Cookie = cookie; //设置为字符串Cookie
    
    hr = helper.GetHtml(items,ref cookie);  //调用自动更新Cookie重载方法
    
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-6-6 14:17
  • 签到天数: 8 天

    [LV.3]【仗剑天涯】

    小哲 发表于 2016-10-20 21:43:29 | 显示全部楼层
    这点 比苏飞那个给力多了。。支持!!!!
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-10 09:02
  • 签到天数: 1 天

    [LV.1]【初入江湖】

    gmjinhua 发表于 2017-1-11 00:13:49 | 显示全部楼层
    我怎么带不过去,老是出错呀,看来还要学习
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    happyaa 发表于 2017-2-3 08:00:39 | 显示全部楼层
    谢谢了,非常棒谢谢
    玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
    帖子内网盘失效后请使用下面地址

    http://bbs.msdn5.com/thread-1218-1-1.html
    如果失效请联系站长重新分享
    回复 支持 反对

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    QQ|Archiver|手机版|小黑屋|玄机论坛   

    GMT+8, 2018-8-16 12:38 , Processed in 0.872484 second(s), 28 queries .

    Powered by Msdn5.com

    © 2014-2015 Msdn5 Inc.

    快速回复 返回顶部 返回列表