vb,post,提交参数怎么不成功,错在哪里了?

pipiqi1975 2017-10-27 04:58:16
先上图,抓取的数据如图


command1能成功登录,而command2执行的是相当于提交表单,改变当前网页显示的行数。无法实现该功能,不知道错在哪里请求帮助。
    Dim http As Object
Dim url As String
Dim str As String
Dim text As String
Dim page As String

Private Sub Command1_Click()
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
url = "http://www.hebgb.gov.cn/portal/j_security_check"
str = "j_uri=%2Fportal%2Findex%21index.action&yzm=not&j_username=130303&j_password=888888&imgcode="
http.Open "POST", url, False
http.setrequestheader "Content-Type", "application/x-www-form-urlencoded"
http.setrequestheader "Content-Length", Len(str)
http.send str
If http.waitforresponse() Then
Clipboard.Clear
Clipboard.SetText http.responsetext
Else: MsgBox "失败"
End If
End Sub

Private Sub Command2_Click()
url = "http://www.hebgb.gov.cn/student/course!courseIndex.action"
page = "rowCount=607¤tPage=1&pageSize=20"
http.Open "POST", url, False
http.setrequestheader "Content-Length", Len(page)
http.send page
If http.waitforresponse() Then
Clipboard.Clear
Clipboard.SetText http.responsetext
Else: MsgBox "失败"
End If
End Sub
...全文
550 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
笨狗先飞 2017-10-29
  • 打赏
  • 举报
回复
可能你需要加一个Referer的头
pipiqi1975 2017-10-29
  • 打赏
  • 举报
回复
呵呵,你说的差不多,我昨晚已经解决了,加了http.setrequestheader "Content-Type", "application/x-www-form-urlencoded"头信息,就OK了。我把抓包软件所有发送头全加上,重新整理后只加这个编码头就可以了。
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
引用 8 楼 bakw 的回复:
仔细描述一下你错误的情况吧 从这个截包数据来看,你是完整接收了数据的。
截包当然是收到完整信息,因为是在浏览器中进行的操作。 而我脚本返回的网页源码可以看出它仅仅是显示了9行,而不是我想要的20行。
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
下图是不带数page打开的页而,当前页只显示9行,因此流信息中没有rowCount=607¤tPage=1&pageSize=20这行参数。

下图在网页中操作时,输入20以后,页面刷新显示20行,困此流信息中有rowCount=607¤tPage=1&pageSize=20这个参数。
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
引用 8 楼 bakw 的回复:
仔细描述一下你错误的情况吧 从这个截包数据来看,你是完整接收了数据的。
没有出错信息,只是没有得到我想要的。、 我加的参数page是在页面中每页显示9行的输入框中输入了20,也就是每页显示20页,抓到取page变量的内容,即 "rowCount=607¤tPage=1&pageSize=20",网页中它显示了网页共607行,当前是第1页,每页显示20行。默认直接输入网址后他打开的是每页9行。我要做的就是让它显示多些行。
笨狗先飞 2017-10-28
  • 打赏
  • 举报
回复
仔细描述一下你错误的情况吧 从这个截包数据来看,你是完整接收了数据的。
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
当然连续,要先点command1,这是账号登录。command2转到新页面,返回的页面源码也正常页面源码。
笨狗先飞 2017-10-28
  • 打赏
  • 举报
回复
command1和command2是不是连续的两个动作,如果是的话,你的http对象需要是全局的,因为cookie中有session,重新创建的http对象里不带之前的session.
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
command2返回的页面源码是不带page这个参数的页面源码。说明参数传递没成功。不知道我http.open page的写法是否有问题,因为没错误信息提示,只是没得到想要的网页。
pipiqi1975 2017-10-28
  • 打赏
  • 举报
回复
command1正常登录网页好不好,创建对象是没问题的,只是command2中想传递的参数没成功。
笨狗先飞 2017-10-28
  • 打赏
  • 举报
回复
Set http = CreateObject("WinHttp.WinHttpRequest.5.1") 如果你所用的系统是xp的话,这种动态创建的方法创建的对象无法提交,你需要在工程中引用,声明。
pipiqi1975 2017-10-27
  • 打赏
  • 举报
回复
脚本登录后返回的只是初始页面,即9行,参数表示的一页显示20行。就是说参数没传递进去。。
赵4老师 2017-10-27
  • 打赏
  • 举报
回复
使用抓包软件wireshark,对比成功和不成功的区别。
WebBrowser 本WebBrowser编程技术包括Delphi、C#、VC++、VB等编程资料的集合,其中的 实例大多以Delphi为示例讲解,Delphi7 IDE开发环境。 IE_WebBrowser编程技巧 修改WebBrowser的header信息? Delphi查看WebBrowser提交之前的数据头 用TWebBrowser组件在DELPHI中POST数据和取得网页源文件 在 WebBrowser 中直接载入流,不通过文件 判断下载网页成功 WebBrowser 失去焦点问题的解决 添加到收藏夹和整理收藏夹 使WebBrowser获得焦点 提取网页中所有链接 Web字体大小 Web命令操作 WebBrowser Navigate 中的 参数 EmptyParam Web控件不缓存网页,也不从缓存中读取 禁止WebBrowser复制 CTRL+C 在WebBrowser窗口上模拟KeyBd_Event 在使用WebBrowser控件,先要 初始化和结束程序后要终止化(Initialization & Finalization) 自定义浏览器上下文菜单 自定义浏览器 C#中调用WebBrowser查看源文件的功能 ----------------------------------- WebBrowser与MSHTML 直接在WebBrowser中写HTML字符串 在webbrowser中查找字符串并定位 把图片拷贝进剪贴板 IHTMLDocument的ExecCommand 处理事件的Internet Explorer中的DOM 禁止WebBrowser右键弹出菜单 禁止TWebBrowser图像显示 访问HTML的DOM不使用WebBrowser 如何填写空白(about:blank)页的表单 屏蔽WebBrowser的Javascript 创建运行时的IHTMLDocument而不在WebBrowser内 HOOK Webbrowser 替换WebBrowser的窗口过程 Microsoft.XMLHttp的属性和方法的简介及使用 ------------------------ IE相关的 清空IE缓存 单独删除某一URL的缓存 清空历记录 读取IE历史记录 防止脚本关闭WebBrowser 连接是否有效 InternetCheckConnection res协议可以使浏览器显示储存在资源中HTML 往IE中嵌入工具条 阻断弹出式广告的BHO 自动填表的IE面板插件 使用Delphi开发IE按钮扩展 使用Delphi开发IE右键菜单扩展 IE异步可插入协议扩展 Delphi开发IE下载扩展 创建3721样式的Google搜索扩展 HTML代码过滤技术 GetDefaultBrowser 得到的HTML代码的IE窗口 下载网址wininet ------------------------------- 注意啦,需要HTF 阅读器:http://sites.google.com/site/htfresource/home

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧