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

 找回密码
 关闭注册

QQ登录

只需一步,快速开始

查看: 4111|回复: 7

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

[复制链接]
君临 发表于 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  例子:

[mw_shl_code=csharp,true]

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);
[/mw_shl_code]

自动维护字符串Cookie  例子:

[mw_shl_code=csharp,true]

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);

[/mw_shl_code]






手动处理Cookie的几种常用方式
[mw_shl_code=csharp,true]

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(); 清空临时文件

[/mw_shl_code]



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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复

使用道具 举报

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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复

使用道具 举报

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/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

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

CookieContainer  对象对于跨域时的cookie处理起来存在问题.
所以允许使用字符串方式维护Cookie.使用时仅需要设置一次即可.
每次仅需要如下方式调用.
[mw_shl_code=csharp,true]

items.Cookie = cookie; //设置为字符串Cookie

hr = helper.GetHtml(items,ref cookie);  //调用自动更新Cookie重载方法
[/mw_shl_code]
玄机论坛-专业的C#交流论坛 交流QQ群: 16885911
帖子内网盘失效后请使用下面地址

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

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

http://bbs.msdn5.com/forum.php?mod=viewthread&tid=1218
如果失效请联系站长重新分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 关闭注册

本版积分规则

关闭

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

QQ|玄机论坛

GMT+8, 2020-8-10 19:28 , Processed in 0.164412 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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