苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 18330|回复: 11

[其他] 用httphelper类https post的问题

[复制链接]
发表于 2013-8-15 21:47:48 | 显示全部楼层 |阅读模式
[code=csharp]            HttpHelper http = new HttpHelper();
            string boundary  = "---------------------------" + DateTime.Now.Ticks.ToString("x");
            HttpItem item = new HttpItem()
            {
                URL = @"https://211.156.219.88/itplat/login.action",
                Method = "post",
                CerPath = @"H:\Users\zzs\Documents\证书\4531294.cer",
                Postdata = "orgcode='80651415'&opercode='100001'&operpwd='xxx'",
                Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
                UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0",
                ContentType = "multipart/form-data",//; boundary="+ boundary,
                Allowautoredirect = true,
                KeepAlive=true
            };
            item.Header.Add("Accept-Encoding", "gzip, deflate");
            HttpResult  result = http.GetHtml(item);
            textBox1.Text = result.Html;
[/code]
上面的代码,报404错误,如果把ContentType那一行注释掉,返回的是“机构号与操作员号不能为空”,就是没有成功post数据。但实际我有post的( Postdata = "orgcode='80651415'&opercode='100001'&operpwd='xxx'",)。是我哪里错了吗?求各位大大指点,多谢了!


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-8-15 22:50:27 | 显示全部楼层
自己抓包分析POST数据,string boundary  = "---------------------------" + DateTime.Now.Ticks.ToString("x");,像这种的数据应该是要自己构造固定的格式发送的。不是简单的那种。
发表于 2013-8-16 08:00:25 | 显示全部楼层
提供一下抓到的Post数据看看吧
 楼主| 发表于 2013-8-16 09:51:17 | 显示全部楼层
本帖最后由 风清扬 于 2013-8-16 09:52 编辑
  1. 响应头信息原始头信息
  2. Connection  Keep-alive
  3. Content-Length  5342
  4. Content-Type  text/html; charset=UTF-8
  5. Date  Fri, 16 Aug 2013 01:46:18 GMT
  6. Via  1.1 AN-0001544135561055, 1.1 AN-0001242763267171
  7. X-Powered-By  Servlet/2.5 JSP/2.1
  8. 请求头信息原始头信息
  9. Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  10. Accept-Encoding  gzip, deflate
  11. Accept-Language  zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
  12. Connection  keep-alive
  13. Cookie  U61agzYSah=MDAwM2IyYTY4YzgwMDAwMDAwMDIwL0dVaBYxMzc2NjQyMTQy; JSESSIONID=4pLvSNGhsB1fWcvYpCTjGv55p1X3Lzr1Y3R8lZ6FQJQc5hrWs02m!93904299
  14. Host  211.156.219.88
  15. Referer  https://211.156.219.88/itplat/login.action
  16. User-Agent  Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0
  17. 来自上传流的请求头信息
  18. Content-Length  363
  19. Content-Type  multipart/form-data; boundary=---------------------------290191243427239
复制代码
这是我用firebug抓的响应头和请求头的信息
  1. 部分multipart/form-data
  2. orgcode  80651415
  3. opercode  100001
  4. operpwd  xxx
  5. 源代码
  6. -----------------------------290191243427239 Content-Disposition: form-data; name="orgcode" 80651415 -----------------------------290191243427239 Content-Disposition: form-data; name="opercode" 100001 -----------------------------290191243427239 Content-Disposition: form-data; name="operpwd" xxx -----------------------------290191243427239--
复制代码
这是post的信息

会不会和后面的“-----------------------------290191243427239” 有关系呢?谢谢各位老大了!
Post的地址 —— https://211.156.219.88/itplat/login.action
发表于 2013-8-16 09:55:19 | 显示全部楼层
290191243427239我估计关键在这里,你分配上这个是怎么生成的吧。
应该是每次,或者是每个Session对应的不同,你多取几次包看看对比下
 楼主| 发表于 2013-8-16 10:07:51 | 显示全部楼层
本帖最后由 风清扬 于 2013-8-16 10:08 编辑
站长苏飞 发表于 2013-8-16 09:55
290191243427239我估计关键在这里,你分配上这个是怎么生成的吧。
应该是每次,或者是每个Session对应的不 ...

那串数字是变了,我第二次登录,请求头就是这样的了
  1. Content-Length  359
  2. Content-Type  multipart/form-data; boundary=---------------------------28925728322996
复制代码
请问这个数字是怎么构造出来的?看js代码里面没有生成的。。

ps:Content-Type  multipart/form-data; boundary=---------------------------290191243427239
这个Content-Type 只包括“multipart/form-data”,还是连后面的都加上呢?
 楼主| 发表于 2013-8-16 10:23:27 | 显示全部楼层
有点明白咋回事了,是不是我要构造类似下面的数据来post?
  1. -----------------------------29308161129306 Content-Disposition: form-data; name="orgcode" 80651415 -----------------------------29308161129306 Content-Disposition: form-data; name="opercode" 100001 -----------------------------29308161129306 Content-Disposition: form-data; name="operpwd" xxx -----------------------------29308161129306--
复制代码
发表于 2013-8-16 10:25:33 | 显示全部楼层
肯定是都加上啊,
后面是一个随机数,你自己生成就行了。
 楼主| 发表于 2013-8-16 10:31:47 | 显示全部楼层
站长苏飞 发表于 2013-8-16 10:25
肯定是都加上啊,
后面是一个随机数,你自己生成就行了。

明白了,谢谢老大!
发表于 2013-8-16 11:03:00 | 显示全部楼层
风清扬 发表于 2013-8-16 10:31
明白了,谢谢老大!

但是我不确定是不是这里的问题,你试试看吧,不行再想别的办法
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-27 18:20

© 2014-2021

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