苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 5917|回复: 7

[求助] postdata中带?号出错

[复制链接]
发表于 2013-9-26 22:37:14 | 显示全部楼层 |阅读模式
[code=csharp]            myitem = new HttpItem();
            myitem.URL = "http://www.baudu.com";//URL     必需项
            myitem.Accept = "text/html, application/xhtml+xml, */*";
            myitem.Referer = "";
            myitem.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
            myitem.ContentType = "application/x-www-form-urlencoded";
            myitem.Header["Accept-Encoding"] = "gzip, deflate";
            myitem.KeepAlive = true;
            myitem.Header["Cache-Control"] = "no-cache";
            myitem.Postdata = "code=1003&type=dd";
            myitem.Method = "post";
            //得到HTML代码
            myresult = new HttpResult();
            myresult = myhttp.GetHtml(myitem);
[/code]
postdata结果是:
code    1003
type    dd

======================================
[code=csharp]            myitem = new HttpItem();
            myitem.URL = "http://www.baudu.com";//URL     必需项
            myitem.Accept = "text/html, application/xhtml+xml, */*";
            myitem.Referer = "";
            myitem.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)";
            myitem.ContentType = "application/x-www-form-urlencoded";
            myitem.Header["Accept-Encoding"] = "gzip, deflate";
            myitem.KeepAlive = true;
            myitem.Header["Cache-Control"] = "no-cache";
            myitem.Postdata = "code=1003&url=asp?a=b&type=dd";
            myitem.Method = "post";
            //得到HTML代码
            myresult = new HttpResult();
            myresult = myhttp.GetHtml(myitem);
[/code]
postdata结果是:
a    b
type    dd
====================================
为什么结果不是想要的样子:
code    1003
url    asp?a=b
type    dd

这里是?号的原因吗,怎么处理?求助大虾。。。。




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-9-27 08:10:27 | 显示全部楼层
提供一下你的抓包信息,感觉你的写法有问题
 楼主| 发表于 2013-9-27 11:14:45 | 显示全部楼层
本帖最后由 Michael_/tp 于 2013-9-27 11:17 编辑
站长苏飞 发表于 2013-9-27 08:10
提供一下你的抓包信息,感觉你的写法有问题


上面写的结果就是抓包信息啊

debug查看变量是对的。但查看抓包就是有问题,实际接收同抓包信息。
代码也是实例,可以直接测试

ps:上面的写法有什么问题?

发表于 2013-9-27 11:16:47 | 显示全部楼层
完整的,你不提供完整的你让我安你写的想像,这样根本找不到问题,如果你写错了, 或者是没有注意到那个,别人也不会知道,所以我让你提供下原始包,Http请求不对,肯定是模拟的包不对。
 楼主| 发表于 2013-9-27 11:33:46 | 显示全部楼层
站长苏飞 发表于 2013-9-27 11:16
完整的,你不提供完整的你让我安你写的想像,这样根本找不到问题,如果你写错了, 或者是没有注意到那个, ...

data

data

data

urldecode

urldecode

urldecode


是urldecode的问题,怎么转才对呢?
发表于 2013-9-27 11:39:27 | 显示全部楼层
你的头信息呢?
主要就是头信息

你现在提交后返回的是什么数据,你上面说好像不是你想要的,那返回的是什么
 楼主| 发表于 2013-9-27 12:00:53 | 显示全部楼层
item.Postdata = "code=1003&url=asp?a=b&type=dd";
改为
item.Postdata = "code=1003&url="+URLEncode("asp?a=b")+"&type=dd";

OK啦,谢谢飞哥,结帖。
当然,URLEncode中一般是变量啦

[code=csharp]public static string URLDecode(string text)
        {
            return HttpUtility.UrlDecode(text, Encoding.GetEncoding("utf-8"));
        }
        public static string URLEncode(string text)
        {
            return HttpUtility.UrlEncode(text, Encoding.GetEncoding("utf-8"));
        }
[/code]
发表于 2013-9-27 12:52:58 | 显示全部楼层
哦,呵呵,这种问题就这样,鬼才知道是那问题,只能根据经验一步一步排查。好的我把帖子结了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-23 18:26

© 2014-2021

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