苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 4473|回复: 9

[HttpHelper] 求助post发送数据带验证码 如何使用 httphelper修改

[复制链接]
发表于 2017-3-20 13:46:26 | 显示全部楼层 |阅读模式
求助post发送数据带验证码 如何使用 httphelper修改

   使用httphelper类 总是返回首页内容,,,,




[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DotNet4.Utilities;
using System.IO;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string code_cookie;
        private void getcodebtn_Click(object sender, EventArgs e)
        {

            HttpHelper http = new HttpHelper();

            HttpItem item = new HttpItem()
             {
                 URL = "http://www.hasyy.com/px/Code.asp",//URL必需项   
                 Encoding = Encoding.Default,//编码格式(utf-8,gb2312,gbk)
                 Method = "get",//URL     可选项 默认为Get
                 ResultType = ResultType.Byte,


             };
            HttpResult result = http.GetHtml(item);
            code_cookie = result.Cookie;
             
            pictureBox1.Image = byteArrayToImage(result.ResultByte);
        }

       

        private void postbtn_Click(object sender, EventArgs e)
        {

            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            
            {
                URL = "http://www.hasyy.com/px/Index.asp",//URL     必需项
                //Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Encoding = Encoding.UTF8,
                Method = "post",//URL     可选项 默认为Get
                Timeout = 100000,//连接超时时间     可选项默认为100000
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
                KeepAlive = true,
                
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
                ContentType = "text/html",//返回类型    可选项有默认值
                Referer = "http://www.hasyy.com/px/",//来源URL     可选项
                Postdata = "gid_1=202&User_Code=" + yzm.Text.Trim() + "&action=save",//Post数据     可选项GET时不需要写
                ResultType = ResultType.String,//返回数据类型,是Byte还是String

                //Cookie = code_cookie.Replace("path=/,", "").Replace("path=/", ""),//字符串Cookie     可选项
                Cookie = code_cookie,
               
            };
            
            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            code_cookie = result.Cookie;
            //返回的Html内容
            string html = result.Html;
            
            textBox4.Text = html;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            
        }

        private Image byteArrayToImage(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);
            Image outputImg = Image.FromStream(ms);
            return outputImg;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            
        }

    }
}

post投票.rar

91.39 KB, 下载次数: 54, 下载积分: 金钱 -1



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2017-3-20 13:47:50 | 显示全部楼层
使用 附件中的代码 就可以正常 发送,不知道哪里出错了   
发表于 2017-3-20 14:34:16 | 显示全部楼层
第一步拿发送页的Cookie去取验证码,
第二步使用同样的Cookie发送即可
 楼主| 发表于 2017-3-20 20:06:41 | 显示全部楼层
站长苏飞 发表于 2017-3-20 14:34
第一步拿发送页的Cookie去取验证码,
第二步使用同样的Cookie发送即可

[C#] 纯文本查看 复制代码
        string code_cookie;
        private void getcodebtn_Click(object sender, EventArgs e)
        {

            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
                URL = "http://www.hasyy.com/px/Index.asp",//URL这里都是测试     必需项
                Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                //Encoding = Encoding.Default,
                Method = "get",//URL     可选项 默认为Get

            };

            HttpResult result = http.GetHtml(item);


            item = new HttpItem()
            {
                URL = "http://www.hasyy.com/px/Code.asp",//URL必需项   
                Encoding = Encoding.Default,//编码格式(utf-8,gb2312,gbk)
                Method = "get",//URL     可选项 默认为Get
                ResultType = ResultType.Byte,
                Cookie = result.Cookie.Replace("path=/", "")

            };

            result = http.GetHtml(item);

            code_cookie += result.Cookie;

            pictureBox1.Image = byteArrayToImage(result.ResultByte);
            
        }



        private void postbtn_Click(object sender, EventArgs e)
        {

            HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()

            {
                URL = "http://www.hasyy.com/px/Index.asp",//URL     必需项
                //Encoding = null,//编码格式(utf-8,gb2312,gbk)     可选项 默认类会自动识别
                Encoding = Encoding.UTF8,
                Method = "post",//URL     可选项 默认为Get
                Timeout = 100000,//连接超时时间     可选项默认为100000
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
                KeepAlive = true,

                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
                ContentType = "text/html",//返回类型    可选项有默认值
                Referer = "http://www.hasyy.com/px/",//来源URL     可选项
                Postdata = "gid_1=202&User_Code=" + yzm.Text.Trim() + "&action=save",//Post数据     可选项GET时不需要写
                ResultType = ResultType.String,//返回数据类型,是Byte还是String

                //Cookie = code_cookie.Replace("path=/,", "").Replace("path=/", ""),//字符串Cookie     可选项
                Cookie = code_cookie,

            };

            //得到HTML代码
            HttpResult result = http.GetHtml(item);
            //取出返回的Cookie
            code_cookie += result.Cookie.Replace("path=/", "");
            //返回的Html内容
            string html = result.Html;

            textBox2.Text = html;
            textBox3.Text = code_cookie;

        }


是这样操作吗,结果和之前一样
发表于 2017-3-21 08:10:33 | 显示全部楼层
活动结束了,你直接发一下抓到的包看看。
 楼主| 发表于 2017-3-21 12:34:25 | 显示全部楼层
站长苏飞 发表于 2017-3-21 08:10
活动结束了,你直接发一下抓到的包看看。




POST /px/Index.asp HTTP/1.1
Host: www.hasyy.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://www.hasyy.com/px/
Cookie: ASPSESSIONIDCQQDQQST=JJIKJFHANKPIEOFIBNKPBCFI; safedog-flow-item=431E23A956D8C76F4099B34AFC346DB8
Connection: keep-alive
Upgrade-Insecure-Requests: 1

发送的数据   gid_1=212&User_Code=fj&action=save

http://www.hasyy.com/px/Code.asp 验证码地址
发表于 2017-3-21 22:08:21 | 显示全部楼层
开始时间:2016-12-15 结束时间:2016-12-24        本次活动已结束,谢谢大家关注!
 楼主| 发表于 2017-3-22 21:24:32 | 显示全部楼层
cload 发表于 2017-3-21 22:08
开始时间:2016-12-15 结束时间:2016-12-24        本次活动已结束,谢谢大家关注!

哥们   你用我的附件的程序看一下 ,看看是否可以 正常投票。。。。。
 楼主| 发表于 2017-3-23 10:26:56 | 显示全部楼层
问题解决了 .........   参考论坛帖子。。。http://www.sufeinet.com/thread-9495-1-1.html,使用这个可以直接发送成功。。。不知道什么原因。。。下面附上源码,希望对有需要的朋友有帮助。。。

投票.rar

81.35 KB, 下载次数: 34, 下载积分: 金钱 -1

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

本版积分规则

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

GMT+8, 2024-12-27 21:21

© 2014-2021

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