苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 9009|回复: 4

[学生提问] 新手求助,最后Post的时候得到html: "Login Name":null

[复制链接]
发表于 2016-5-3 23:06:34 | 显示全部楼层 |阅读模式
本帖最后由 hadwin_Y4Wm5 于 2016-5-4 14:58 编辑

做一个自动充值,思路如下:使用webBrowser获取cookies 传给httphelper万能框架,登陆,登陆成功后查询要充值的用户名和其账户基本信息,获取有用信息,最终Post,所有参数均正确,cookies 也正确,但最终Post 无法成功,得到html 为 QQ图片20160503230410.png


请问,这个问题有遇到的吗? 该如何解决?



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2016-5-4 14:31:26 | 显示全部楼层
一般是Cookie问题,你提供一个抓包信息,和你写的提交代码,看看
 楼主| 发表于 2016-5-4 14:49:17 | 显示全部楼层
本帖最后由 hadwin_Y4Wm5 于 2016-5-4 14:54 编辑
站长苏飞 发表于 2016-5-4 14:31
一般是Cookie问题,你提供一个抓包信息,和你写的提交代码,看看

1

1

2

2

3

3

4

4

5

5

6

6

感觉问题是出在充值前先查询后出现的一个参数上,查询后有LoginName这一项,但最终提交充值的时候,post数据中没有这一项,所以返回LoginName=null
但不知道怎么使用这个LoginName了

代码:
[C#] 纯文本查看 复制代码
for (int i = 0; i < this.listView3.Items.Count; i++)
            {
                if (this.listView3.Items.SubItems[5].Text == "未支付")
                {
                    HttpHelper http = new HttpHelper();
                    HttpItem item = new HttpItem()
                    {
                        URL = textBox10.Text + "/ball/cl/?module=Deposit&method=query&sid=",
                        Method = "post",
                        ContentType = "application/x-www-form-urlencoded",
                        Postdata = "search_name=" + this.listView3.Items.SubItems[1].Text,
                        CookieCollection = cookie,
                        ResultCookieType = ResultCookieType.CookieCollection
                    };
                    HttpResult result = http.GetHtml(item);
                    string html = result.Html;
                    cookie.Add(result.CookieCollection);
                    string successKey = "flag";
                    Match match = Regex.Match(html, successKey);
                    if (match.Success)
                    {
                        string userID = HttpHelper.GetBetweenHtml(html, "\"user_id\":", ",\"user_name\"");
                        string hallID = HttpHelper.GetBetweenHtml(html, "\"HallID\":", ",\"CHK_ID\"");
                        string CHK_ID = HttpHelper.GetBetweenHtml(html, "\"CHK_ID\":\"", "\",\"date\"");
                        //string LoginName = HttpHelper.GetBetweenHtml(html, "\"LoginName\":\"", "\",\"HallID\"");
                        string userName_Post = this.listView3.Items.SubItems[1].Text;
                        string dateTime = ((DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ")).Replace(" ", "+")).Replace(":", "%3A");
                        string dateAMPM = "PM";
                        if (Convert.ToInt32(DateTime.Now.ToString("mm")) < 12)
                        {
                            dateAMPM = "AM";
                        }
                        else
                        {
                            dateAMPM = "PM";
                        }
                        string data ="user_id=" + userID + "&hallid=" + hallID + "&CHK_ID=" + CHK_ID + "&user_name=" + userName_Post + "&date=" + dateTime + dateAMPM + "&Currency=RMB&abamount_limit=0&amount=" + this.listView3.Items.SubItems[2].Text + "&amount_memo=&SpAmount=&SpAmount_memo=&AbCheck=1&AbAmount=0&AbAmount_memo=&ComplexAuditCheck=1&complex=0.5&NormalityAuditCheck=1&CommissionCheck=Y&DepositItem=ARD1";
                        item = new HttpItem()
                        {
                            URL = textBox10.Text + "/ball/cl/?module=Deposit&method=query&sid=",
                            Method = "post",
                            ContentType = "application/x-www-form-urlencoded",
                            Postdata = data,
                            Referer = textBox10.Text + "/ball/cl/index.php?module=Deposit&method=Source&langx=gb",
                            CookieCollection = cookie,
                            ResultCookieType = ResultCookieType.CookieCollection,
                        };
                        result = http.GetHtml(item);
                        html = result.Html;
                        cookie.Add(result.CookieCollection);
                                    }
                                }
            }

 楼主| 发表于 2016-5-4 18:06:39 | 显示全部楼层
本帖最后由 hadwin_Y4Wm5 于 2016-5-4 18:07 编辑
站长苏飞 发表于 2016-5-4 14:31
一般是Cookie问题,你提供一个抓包信息,和你写的提交代码,看看

感谢您的帮助,问题找到了,原来是我把post网址写错了,本来是deposit,写成了query,

修改后就提交成功了,
发表于 2016-5-5 08:13:48 | 显示全部楼层
  恭喜解决
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-29 19:44

© 2014-2021

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