|
1金钱
[C#] 纯文本查看 复制代码 HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
URL = "http://www.baidu.com",//URL 必需项
Encoding = System.Text.Encoding.GetEncoding( "utf-8"),//URL 可选项 默认为Get
Method = "get",//URL 可选项 默认为Get
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = "",//字符串Cookie 可选项
Referer ="",//来源URL 可选项
Postdata = "",//Post数据 可选项GET时不需要写
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "text/html",//返回类型 可选项有默认值
Allowautoredirect = true,//是否根据301跳转 可选项
//CerPath = "d:\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
//Connectionlimit = 1024,//最大连接数 可选项 默认为1024
ProxyIp = "",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.Byte
};
HttpResult result = http.GetHtml(item);
string cookie = string.Empty;
foreach (CookieItem s in HttpCookieHelper.GetCookieList(result.Cookie))
{
if (s.Key.Contains("BAIDUID") || s.Key.Contains("BDSVRTM") || s.Key.Contains("H_PS_PSSID"))
{
cookie += HttpCookieHelper.CookieFormat(s.Key, s.Value);
}
}
string session = cookie;
// string html = result.Html;
item = new HttpItem()
{
URL = "https://passport.baidu.com/v2/api/?getapi&tpl=qing&apiver=v3&tt=1372662810579&class=login&callback=bd__cbs__3jptzw",//URL 必需项
Encoding = System.Text.Encoding.GetEncoding("utf-8"),//URL 可选项 默认为Get
Method = "get",//URL 可选项 默认为Get
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = session,//字符串Cookie 可选项
Referer = "http://www.baidu.com",//来源URL 可选项
Postdata = "",//Post数据 可选项GET时不需要写
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "text/html",//返回类型 可选项有默认值
Allowautoredirect = false,//是否根据301跳转 可选项
//CerPath = "d:\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
//Connectionlimit = 1024,//最大连接数 可选项 默认为1024
ProxyIp = "",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.Byte
};
foreach (CookieItem s in HttpCookieHelper.GetCookieList(result.Cookie))
{
if (s.Key.Contains("BAIDUID") || s.Key.Contains("HISTORY") || s.Key.Contains("Hm_lvt_90056b3f84f90da57dc0f40150f005d5") || s.Key.Contains("HOSUPPORT") || s.Key.Contains("H_PS_PSSID") || s.Key.Contains("SAVEUSERID") || s.Key.Contains("UBI") || s.Key.Contains("USERNAMETYPE"))
{
session += HttpCookieHelper.CookieFormat(s.Key, s.Value);
}
}
cookie= HttpCookieHelper.Addcookie(cookie, session);
result = http.GetHtml(item);
string tooken = Library.RegexHelper.regex_string_one("(?<=\"token\" : \").*?(?=\")", result.Html);
session = cookie;
item = new HttpItem()
{
URL = "https://passport.baidu.com/v2/api/?login",//URL 必需项
Encoding = System.Text.Encoding.GetEncoding("utf-8"),//URL 可选项 默认为Get
Method = "post",//URL 可选项 默认为Get
IsToLower = false,//得到的HTML代码是否转成小写 可选项默认转小写
Cookie = session,//字符串Cookie 可选项
Referer = "http://www.baidu.com/",//来源URL 可选项
Postdata = string.Format("staticpage=http%3A%2F%2Fhi.baidu.com%2Fcom%2Fshow%2Fproxy%3Ffor%3Dv3_pass_login&charset=utf-8&token={0}&tpl=qing&apiver=v3&tt=137{1}&codestring=&isPhone=false&safeflg=0&u=http%3A%2F%2Fhi.baidu.com%2F&username={2}&password={3}&verifycode=&mem_pass=on&ppui_logintime=165501&callback=parent.bd__pcbs__hggm3p", tooken, 2135548532, "shijiaxin3180", "test123456"),//Post数据 shijiaxin3180:test123456 可选项GET时不需要写
Timeout = 100000,//连接超时时间 可选项默认为100000
ReadWriteTimeout = 30000,//写入Post数据超时时间 可选项默认为30000
UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统 可选项有默认值
ContentType = "text/html",//返回类型 可选项有默认值
Allowautoredirect = false,//是否根据301跳转 可选项
//CerPath = "d:\123.cer",//证书绝对路径 可选项不需要证书时可以不写这个参数
//Connectionlimit = 1024,//最大连接数 可选项 默认为1024
ProxyIp = "",//代理服务器ID 可选项 不需要代理 时可以不设置这三个参数
//ProxyPwd = "123456",//代理服务器密码 可选项
//ProxyUserName = "administrator",//代理服务器账户名 可选项
ResultType = ResultType.String
};
result = http.GetHtml(item);
foreach (CookieItem s in HttpCookieHelper.GetCookieList(result.Cookie))
{
if (s.Key.Contains("BAIDUID") || s.Key.Contains("HISTORY") || s.Key.Contains("Hm_lvt_90056b3f84f90da57dc0f40150f005d5") || s.Key.Contains("HOSUPPORT") || s.Key.Contains("H_PS_PSSID") || s.Key.Contains("SAVEUSERID") || s.Key.Contains("UBI") || s.Key.Contains("USERNAMETYPE") || s.Key.Contains("BDUSS"))
{
session += HttpCookieHelper.CookieFormat(s.Key, s.Value);
}
}
cookie = HttpCookieHelper.Addcookie(cookie, session);
richTextBox1.Text = cookie;
以为自己懂了httphelper的使用 原来还是不懂啊,
自己尝试了三四天 无论怎么更改cookie就是无法获取到登录的cookie “BDUSS” 使用了之前的老方法 一直都能顺利获取
[C#] 纯文本查看 复制代码 //访问首页带上cookie
HttpHelper.HttpGET("http://www.baidu.com/", "", "http://www.baidu.com/", 2, ref cookie, 20, "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
//使用上一步的cookie访问api页面
string html = HttpHelper.HttpGET("https://passport.baidu.com/v2/api/?getapi&tpl=qing&apiver=v3&tt=1372662810579&class=login&callback=bd__cbs__3jptzw", "", "http://www.baidu.com/", 2, ref cookie, 20, "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)");
tokenstr = html.Substring(html.IndexOf("token")+10);
tokenstr = tokenstr.Remove(tokenstr.IndexOf("\""));
//带上token和cookiepost登陆页面
richTextBox1.Text = HttpHelper.HttpPOST("https://passport.baidu.com/v2/api/?login", "", "staticpage=http%3A%2F%2Fhi.baidu.com%2Fcom%2Fshow%2Fproxy%3Ffor%3Dv3_pass_login&charset=utf-8&token=" + tokenstr + "&tpl=qing&apiver=v3&tt=1372661616626&codestring=&isPhone=false&safeflg=0&u=http%3A%2F%2Fhi.baidu.com%2F&username=shijiaxin3180&password=test123456&verifycode=&mem_pass=on&ppui_logintime=165501&callback=parent.bd__pcbs__hggm3p", "http://www.baidu.com/", true, false, ref cookie, 20, "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)", false);
if (richTextBox1.Text.Contains("captchaservice"))
{
string codeurl = richTextBox1.Text.Substring(richTextBox1.Text.IndexOf("captchaservice"));
codeurl = codeurl.Remove(codeurl.IndexOf("&"));
Image codeimg = HttpHelper.HttpGetImage("https://passport.baidu.com/cgi-bin/genimage?" + codeurl, "", "http://hi.baidu.com/", ref cookie, 20);
code c = new code();
c.codeimg = codeimg;
c.ShowDialog();
//带上token和cookiepost登陆页面
richTextBox1.Text = HttpHelper.HttpPOST("https://passport.baidu.com/v2/api/?login", "", "staticpage=http%3A%2F%2Fhi.baidu.com%2Fcom%2Fshow%2Fproxy%3Ffor%3Dv3_pass_login&charset=utf-8&token=" + tokenstr + "&tpl=qing&apiver=v3&tt=1372661616626&codestring=" + codeurl + "&isPhone=false&safeflg=0&u=http%3A%2F%2Fhi.baidu.com%2F&username=shijiaxin3180&password=test123456&verifycode=" + c.codestr + "&mem_pass=on&ppui_logintime=165501&callback=parent.bd__pcbs__hggm3p", "http://hi.baidu.com/", true, false, ref cookie, 20, "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)", false);
}
|
|