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

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 4669|回复: 9

[反馈建议] 苏飞,POST不能返回结果。类库2.0版本

[复制链接]
发表于 2014-5-6 19:32:47 | 显示全部楼层 |阅读模式
think.zip (1.49 MB, 下载次数: 26)


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2014-5-6 19:45:04 | 显示全部楼层
你的网址无法测试,所以无法确定问题
发表于 2014-5-6 20:34:57 | 显示全部楼层
站长的类是很好用的,我也一直用2.0。你说的情况有2种可能:一是你没处理好,二是苏飞没遇到过这个特殊情况。
 楼主| 发表于 2014-5-6 21:16:16 | 显示全部楼层
[C#] 纯文本查看 复制代码
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/think/index.php/Index/login");
            request.CookieContainer = new CookieContainer();  
            CookieContainer cookie = request.CookieContainer;//如果用不到Cookie,删去即可  
            //以下是发送的http头,随便加,其中referer挺重要的,有些网站会根据这个来反盗链  
            request.Referer = "http://localhost/";
            request.Accept = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";  
            request.Headers["Accept-Language"] = "zh-CN,zh;q=0.";  
            request.Headers["Accept-Charset"] = "GBK,utf-8;q=0.7,*;q=0.3";  
            request.UserAgent = "User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1";  
            request.KeepAlive = true;  
            //上面的http头看情况而定,但是下面俩必须加  
            request.ContentType = "application/x-www-form-urlencoded";  
            request.Method = "POST";

            string postString = "password=111111";
            Encoding encoding = Encoding.UTF8;//根据网站的编码自定义  
            byte[] postData = encoding.GetBytes(postString);//postDataStr即为发送的数据,格式还是和上次说的一样  
            request.ContentLength = postData.Length;  
            Stream requestStream = request.GetRequestStream();  
            requestStream.Write(postData, 0, postData.Length);  
  
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();  
            Stream responseStream = response.GetResponseStream();  
            //如果http头中接受gzip的话,这里就要判断是否为有压缩,有的话,直接解压缩即可  
            if (response.Headers["Content-Encoding"] != null && response.Headers["Content-Encoding"].ToLower().Contains("gzip"))  
            {  
                responseStream = new GZipStream(responseStream, CompressionMode.Decompress);  
            }  
  
            StreamReader streamReader = new StreamReader(responseStream, encoding);  
            string retString = streamReader.ReadToEnd();  
  
            streamReader.Close();  
            responseStream.Close();

            System.Diagnostics.Trace.WriteLine(retString); 


自己参考网上的写了一个,经过测试,没有问题。

基本可以判断那个C#HttpHelper类2.0框架版本,是存在问题的。
 楼主| 发表于 2014-5-6 22:52:11 | 显示全部楼层
我去。item.ContentType = "application/x-www-form-urlencoded";

这个默认的是 text/html 类型。导致的。
 楼主| 发表于 2014-5-6 22:55:54 | 显示全部楼层
推荐默认设置 "application/x-www-form-urlencoded"; 这个类型
发表于 2014-5-6 22:58:15 | 显示全部楼层
wlm212 发表于 2014-5-6 22:55
推荐默认设置 "application/x-www-form-urlencoded"; 这个类型

http://www.sufeinet.com/thread-8158-1-1.html
我曾经提过。
发表于 2014-5-6 23:07:30 | 显示全部楼层
wlm212 发表于 2014-5-6 22:55
推荐默认设置 "application/x-www-form-urlencoded"; 这个类型

默认肯定是html啊,这在抓包是应该是基础的,头信息肯定要注意的,不可能莫认为这个头信息,html比重比较大
发表于 2014-5-6 23:08:07 | 显示全部楼层
我也来反映,是有这个情况,困惑了我2天了,今天参照lz的代码自己写了一个就过了。
发表于 2014-5-8 11:09:53 | 显示全部楼层
提交要抓包的,孩子
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-23 11:06

© 2014-2021

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