http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6553|回复: 3

[学生提问] 使用httpwebrequest注册京东通行证,求助,谢谢!

[复制链接]
发表于 2015-5-29 07:58:23 | 显示全部楼层 |阅读模式
10金钱
利用httpwebrequest提交数据包到京东的注册通行证页面  https://reg.jd.com/register/sendRegEmail
(程序 Request.Headers == 浏览器 Request.Headers  && 程序发送的数据包== 浏览器发送的数据包)==true
(程序Response !=浏览器Response)==true


Why?  

请各位指点迷津  谢谢!



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-5-29 09:03:03 | 显示全部楼层
贴下代码看看,
回复

使用道具 举报

 楼主| 发表于 2015-5-29 15:22:47 | 显示全部楼层
[C#] 纯文本查看 复制代码
CookieContainer _cCookies = new CookieContainer();
                _cCookies.Add(cookies);
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(Url.ToString());
                myRequest.ProtocolVersion = HttpVersion.Version11;             
                myRequest.AllowAutoRedirect = false;
                myRequest.ServicePoint.Expect100Continue = false;   
                myRequest.KeepAlive = true;
                myRequest.Method = "POST";
                myRequest.Timeout = 30000;
                SetHeaderValue(myRequest.Headers, "x-requested-with", "XMLHttpRequest");
                SetHeaderValue(myRequest.Headers, "Accept-Language", "zh-cn");
                if (referer != "")
                    myRequest.Referer = referer;
                myRequest.Accept = "*/*";
                myRequest.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
                SetHeaderValue(myRequest.Headers, "Accept-Encoding", "gzip, deflate");
                myRequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
                SetHeaderValue(myRequest.Headers, "Host", "");
                SetHeaderValue(myRequest.Headers, "Content-Length", _iDataLength.ToString());
                myRequest.Headers["DNT"] = "1";
                SetHeaderValue(myRequest.Headers, "Connection", "Keep-Alive");
                SetHeaderValue(myRequest.Headers, "Cache-control", "no-cache");
                myRequest.CookieContainer = _cCookies;
                Stream newStream = myRequest.GetRequestStream();
                newStream.Write(postData, 0, postData.Length);
                newStream.Close();
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                Stream streamReceive = myResponse.GetResponseStream();
                if (myResponse.ContentEncoding.ToLower() == "gzip")
                {
                    streamReceive = new GZipStream(streamReceive, CompressionMode.Decompress);
                }
                Encoding encoding = Encoding.GetEncoding(encodingFormat);
                StreamReader reader = new StreamReader(streamReceive, encoding);
                string outdata = reader.ReadToEnd();
                reader.Close();
                myResponse.Close();
                streamReceive.Close();
回复

使用道具 举报

 楼主| 发表于 2015-5-29 15:23:44 | 显示全部楼层
[C#] 纯文本查看 复制代码
public void SetHeaderValue(WebHeaderCollection header, string name, string value)
        {
            var property = typeof(WebHeaderCollection).GetProperty("InnerCollection",
                System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
            if (property != null)
            {
                var collection = property.GetValue(header, null) as NameValueCollection;
                collection[name] = value;
            }
        }

这个方法是利用反射来设置请求头
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-24 05:24

© 2014-2021

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