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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 3051|回复: 7

[HttpHelper] get方法提交参数

[复制链接]
发表于 2017-5-5 00:03:23 | 显示全部楼层 |阅读模式
通过get方法提交一个url,比如

http://www.XXX.com/loginid=234323232&pwd=342sddfr3423;
在fiddler中看到地址变为
http://www.XXX.com/loginid=%EF%B ... p;pwd=342sddfr3423;
使用了urlencode了,但是这样提交web服务器就认为是参数错误

经过测试,在httphelper中生成的url是正确的url,但是,无论是通过httphelper抓取或者直接打开浏览器输入要提交参数的url,在fiddler中看到的提交的url都是经过urlencode后的地址,所以,也很自然的没有得到想要的结果。
百思不得其解……









1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2017-5-5 00:20:08 | 显示全部楼层
fiddler监控到的url,返回值提示登陆失败
login.action?loginId=%EF%BB%BF162083100&passwd=f212daea2ee4429cedc2994d9dac0cdc
正确的url,返回值登陆成功
login.action?loginId=162083100&passwd=f212daea2ee4429cedc2994d9dac0cdc
发表于 2017-5-5 08:15:40 | 显示全部楼层
这个要看下是怎么发送的。你代码怎么写的。
 楼主| 发表于 2017-5-5 09:42:12 | 显示全部楼层
站长苏飞 发表于 2017-5-5 08:15
这个要看下是怎么发送的。你代码怎么写的。

item = new HttpItem()
            {
                URL ="http://xxxxxx/login.action?loginId=" + name + "&passwd=" + pwd,//URL     必需项               
                Encoding = System.Text.Encoding.GetEncoding("utf-8"),
                Method = "GET",//URL     可选项 默认为Get   
            
                Accept = "text/html, application/xhtml+xml, */*",
            
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写            
                Allowautoredirect = true,
                ResultCookieType = ResultCookieType.CookieCollection,
            };
        
            result = http.GetHtml(item);
发表于 2017-5-5 09:59:02 | 显示全部楼层
     Encoding = System.Text.Encoding.GetEncoding("utf-8"),
    Accept = "text/html, application/xhtml+xml, */*",
去掉这两个测试一下
看代码是不应该会影响的,
也许 是跟系统环境有关,我建议你把同样代码放别的电脑上试试看。
 楼主| 发表于 2017-5-5 10:18:28 | 显示全部楼层
站长苏飞 发表于 2017-5-5 09:59
Encoding = System.Text.Encoding.GetEncoding("utf-8"),
    Accept = "text/html, application/xht ...

我测试了一下,通过网页直接登陆,也提示同样的问题,网络连接也更改了,电脑也更改了,都不行,去掉那两句之后没有效果
 楼主| 发表于 2017-5-5 11:39:57 | 显示全部楼层
站长苏飞 发表于 2017-5-5 08:15
这个要看下是怎么发送的。你代码怎么写的。

初步怀疑是bom的问题,账号保存在一个txt文件中,会在账号的前面加上一个arc码65279的空格,导致长度会增加1位,所以提交的时候会出现乱码。但是看变量是看不出来的,能否在提交的时候做一下处理,更新一下httphelper呢
发表于 2017-5-5 12:19:52 | 显示全部楼层
这个不应该Httphelper去处理,可自行处理,书写时也要养成好习惯,如果有用户需要加空格就没办法实现了。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-5-7 17:42

© 2014-2021

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