本帖最后由 shorlyn 于 2013-12-26 12:34 编辑
登录小米后,获取到的cookie如下
passToken=Aq3FBlXT880Y+FyC7LB8rQFVxJ9wiLLh1uoM/QHo5rfeb7WOvBuuInD2he8NtqUnbSfUZTAmVnl8ZOPw9qP6Yk2n5AnUrNeYg86fDNwCO0CFxB880jCEPkZeDHhmWgoYjbPXJEQuDSiRiq6lMSHg8Mb7kGrAcQTqWAM7zjUyCZHXHi9qAcm8UzmVmR/9b6Jgq8UHM11UBZ6NezwcjRsg+PFCQatynijRVt4
在验证https://account.xiaomi.com时是已登录状态,但是在验证
http://tc.hd.xiaomi.com/hdget?callback=hdcontrol&_=时是未登录状态,我用自己写的CookieContainer可以验证通过。但是其它.xiaomi.com的都验证不通过,是有cookie没有传递过去吗?
登录时的代码
[C#] 纯文本查看 复制代码
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = this.comboBox1.Text,//URL 必需项
Encoding = null,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别
//Encoding = Encoding.Default,
Method = "POST",//URL 可选项 默认为Get
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = "",//字符串Cookie 可选项
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
Accept = "*/*",// 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值
//Referer = "http://www.sufeinet.com",//来源URL 可选项
Allowautoredirect = true,//是否根据301跳转 可选项
//CerPath = "d:\\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
Connectionlimit = 1024,//最大连接数 可选项 默认为1024
Postdata = postData,//Post数据 可选项GET时不需要写
PostDataType = PostDataType.String,//默认为传入String类型,也可以设置PostDataType.Byte传入Byte类型数据
//ProxyIp = "192.168.1.105:8015",//代理服务器ID 端口可以直接加到后面以:分开就行了 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.Byte,//返回数据类型,是Byte还是String
PostdataByte = System.Text.Encoding.Default.GetBytes(postData),//如果PostDataType为Byte时要设置本属性的值
//CookieCollection = new System.Net.CookieCollection(),//可以直接传一个Cookie集合进来
};
//得到HTML代码
HttpResult result = http.GetHtml(item);
//取出返回的Cookie
string cookie = result.Cookie;
MiCookie.cookie = cookie;
获取HTML时的代码
[C#] 纯文本查看 复制代码
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = this.comboBox1.Text,//URL 必需项
Encoding = null,//编码格式(utf-8,gb2312,gbk) 可选项 默认类会自动识别
//Encoding = Encoding.Default,
Method = "GET",//URL 可选项 默认为Get
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = MiCookie.cookie,//字符串Cookie 可选项
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
Accept = "*/*",// 可选项有默认值
ContentType = "application/x-www-form-urlencoded",//返回类型 可选项有默认值
Allowautoredirect = true,//是否根据301跳转 可选项
Connectionlimit = 1024,//最大连接数 可选项 默认为1024
ResultType = ResultType.Byte,//返回数据类型,是Byte还是String
};
HttpResult result = http.GetHtml(item);
this.webBrowser1.DocumentText = result.Html;
|