苏飞论坛广告位

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

HttpHelper万能框架(V2.2) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V1.9) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 606|回复: 2

[HttpHelper] 紧急求助!!!模拟登录,报用户名密码错误?

[复制链接]

该用户从未签到

发表于 2018-6-8 10:25:25 | 显示全部楼层 |阅读模式
微信图片_20180608102327.png 微信图片_20180608102334.png
请大家帮忙看看代码有什么问题么?
public partial class Form1 : Form
    {
        private String loginUrl = @"http://jkda.jxhfpc.gov.cn/";
        private String actionUrl = @"http://jkda.jxhfpc.gov.cn/login/userLogin.action";
        private String codeUrl = @"http://jkda.jxhfpc.gov.cn/login/imageCode.action";
        private HttpHelper http = new HttpHelper();
        private String cookie = null;
        public Form1()
        {
            InitializeComponent();
            Initialize();
        }
        private void Initialize()
        {
            HttpItem item = new HttpItem()
            {
                URL = loginUrl,
                Method = "get",//URL     可选项 默认为Get   
                ResultType = ResultType.String
            };
            HttpResult result = http.GetHtml(item);
            cookie = result.Cookie;
            item = new HttpItem()
            {
                URL = codeUrl,
                Method = "get",//URL     可选项 默认为Get  
                Cookie = cookie,
                ResultType = ResultType.Byte
            };
            Image img = http.GetImage(item);
            this.pictureBoxCode.Image = img;
            this.pictureBoxCode.Refresh();
        }
        private void buttonRefesh_Click(object sender, EventArgs e)
        {
            HttpItem item = new HttpItem()
            {
                URL = codeUrl,
                Method = "get",//URL     可选项 默认为Get  
                Cookie = cookie,
                ResultType = ResultType.Byte
            };
            Image img = http.GetImage(item);
            this.pictureBoxCode.Image = img;
            this.pictureBoxCode.Refresh();
        }

        private void buttonLogin_Click(object sender, EventArgs e)
        {
            String postData = string.Format("username={0}&password={1}&vercode={2}&online=on", this.textBoxUsername.Text.Trim(), this.textBoxPassword.Text.Trim(), this.textBoxVercode.Text);
            HttpItem item = new HttpItem()
            {
                URL = actionUrl,//URL     必需项   
                Accept = "*/*",
                UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                Method = "post",//URL     可选项 默认为Get  
                Cookie = cookie,
                ContentType = "application/x-www-form-urlencoded; charset=UTF-8",//返回类型    可选项有默认值
                Postdata = postData,//Post要发送的数据
            };
            //请求的返回值对象
            HttpResult result = http.GetHtml(item);
            //获取请请求的Html
            string html = result.Html;
            Console.Write(html);
            MessageBox.Show(html);
        }
    }

  • TA的每日心情
    开心
    7 小时前
  • 签到天数: 601 天

    [LV.9]以坛为家II

    发表于 2018-6-8 10:33:20 | 显示全部楼层
    少两个参数的吧
    token_key: 1d6672e001fd7812c39fdb0b9433b8bb
    token_value: 45d62ee6db0542dba04deeb5fb5d21e7

    该用户从未签到

     楼主| 发表于 2018-6-8 11:04:33 | 显示全部楼层
    我试了一下,还是同样的结果。。。。。
    public partial class Form1 : Form
        {
            private String loginUrl = @"http://jkda.jxhfpc.gov.cn/";
            private String actionUrl = @"http://jkda.jxhfpc.gov.cn/login/userLogin.action";
            private String codeUrl = @"http://jkda.jxhfpc.gov.cn/login/imageCode.action";
            private HttpHelper http = new HttpHelper();
            private String cookie = "JSESSIONID={0}; BIGipServerPool_jkda={1}";
            private String token_key= null;
            private String token_value = null;
            public Form1()
            {
                InitializeComponent();
                Initialize();
            }
            private void Initialize()
            {
                HttpItem item = new HttpItem()
                {
                    URL = loginUrl,
                    Method = "get",//URL     可选项 默认为Get   
                    ResultType = ResultType.String
                };
                HttpResult result = http.GetHtml(item);
                String str = result.Cookie;
                String key = HttpHelper.GetBetweenHtml(result.Cookie, "JSESSIONID=", ";");
                String sid = HttpHelper.GetBetweenHtml(result.Cookie, "BIGipServerPool_jkda=", ";");
                cookie = string.Format(cookie, key, sid);
                HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                doc.LoadHtml(result.Html);
                token_key = doc.DocumentNode.SelectSingleNode("//input[@name='token_key']").Attributes["value"].Value;
                token_value = doc.DocumentNode.SelectSingleNode("//input[@name='token_value']").Attributes["value"].Value;            
                item = new HttpItem()
                {
                    URL = codeUrl,
                    Method = "get",//URL     可选项 默认为Get  
                    Cookie = cookie,
                    ResultType = ResultType.Byte
                };
                Image img = http.GetImage(item);
                this.pictureBoxCode.Image = img;
                this.pictureBoxCode.Refresh();
            }
            private void buttonRefesh_Click(object sender, EventArgs e)
            {
                HttpItem item = new HttpItem()
                {
                    URL = codeUrl,
                    Method = "get",//URL     可选项 默认为Get  
                    Cookie = cookie,
                    ResultType = ResultType.Byte
                };
                Image img = http.GetImage(item);
                this.pictureBoxCode.Image = img;
                this.pictureBoxCode.Refresh();
            }

            private void buttonLogin_Click(object sender, EventArgs e)
            {
                String postData = string.Format("token_key={0}&token_value={1}&username={2}&password={3}&vercode={4}&online=on", token_key, token_value, this.textBoxUsername.Text.Trim(), this.textBoxPassword.Text.Trim(), this.textBoxVercode.Text);
                HttpItem item = new HttpItem()
                {
                    URL = actionUrl,//URL     必需项   
                    Accept = "*/*",
                    UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36",
                    Method = "post",//URL     可选项 默认为Get  
                    Cookie = cookie,
                    ContentType = "application/x-www-form-urlencoded; charset=UTF-8",//返回类型    可选项有默认值
                    Postdata = postData,//Post要发送的数据
                };
                //请求的返回值对象
                HttpResult result = http.GetHtml(item);
                //获取请请求的Html
                string html = result.Html;
                Console.Write(html);
                MessageBox.Show(html);
            }
        }
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则

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

    GMT+8, 2018-10-15 23:18

    © 2017-2018

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