注册 登录
编程论坛 VB6论坛

怎样向这个页面POST

ymhy12345 发布于 2014-03-25 20:51, 1816 次点击
程序代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>test</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
        <form name="Form1" method="post" action="test.aspx" id="Form1">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTUxMTcwNzgxMGRkzYTxYOfoIUYOw1ToXlTA0snS5oo=" />

            <FONT face="宋体"></FONT>
        </form>
    </body>
</HTML>
如题,怎样向这个页面POST,然后用WEB控件新窗口打开浏览
6 回复
#2
风吹过b2014-03-26 09:12
POST 数据是这个:
__VIEWSTATE=/wEPDwUKLTUxMTcwNzgxMGRkzYTxYOfoIUYOw1ToXlTA0snS5oo=
URL=服务器地址 & "\test.aspx"

打开用函数是这个。
Private Sub 发POST包(数据 As String, URL As String)
    On Error Resume Next
    Dim poststr() As Byte
    poststr = StrConv(数据, vbFromUnicode)
    Web1.Navigate URL, , , poststr, "Content-Type: application/x-www-form-urlencoded"
End Sub
#3
ymhy123452014-03-26 10:47
回复 2楼 风吹过b
用抓包软件抓到IE浏览器向服务器发的包,
程序代码:
POST /B1050-07-A12/test.aspx HTTP/1.1
x-requested-with: XMLHttpRequest
Accept-Language: zh-cn
Referer: http://stb.****.com/B1050-07-A12/right.aspx
Accept: */*
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: stb.****.com
Content-Length: 11
Connection: Keep-Alive
Cache-Control: no-cache
Cookie: 1

只有本站会员才能查看附件,请 登录



登陆页面是stb.****.com,参数值是txtID,txtPassword,没有验证码的,登陆后IE向服务器发包页面是这个stb.****.com/B1050-07-A12/test.aspx,要向服务器不断发包才能打开服务器某一页面,执行下一步操作,请问一下,这个涵数是这样用吗
Private Sub Command3_Click()
post"stb.****.com/B1050-07-A12/test.aspx", "txtID=账号&txtPassword=密码"
WebBrowser1.Navigate "服务器某一页面",
End Sub
#4
风吹过b2014-03-26 14:31
POST /B1050-07-A12/test.aspx HTTP/1.1                 POST是动作 ,后面是 页面地址, 最后是协议版本。
x-requested-with: XMLHttpRequest
Accept-Language: zh-cn
Referer: http://stb.****.com/B1050-07-A12/right.aspx
Accept: */*
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Host: stb.****.com          这里主机名,HTTP:// + 主机名 + 页面地址 ,构成 URL  
Content-Length: 11
Connection: Keep-Alive
Cache-Control: no-cache
Cookie:

film_name=1                  这里是 POST 数据。

Private Sub 发POST包(数据 As String, URL As String)
数据是 POST 数据, URL 是网页地址。
    On Error Resume Next
    Dim poststr() As Byte
    poststr = StrConv(数据, vbFromUnicode)
    Web1.Navigate URL, , , poststr, "Content-Type: application/x-www-form-urlencoded"
web1 是指一个 WebBrowser1 一个控件,如果不想写死来,那就继续传参数吧。
End Sub

-------------------

你提供的数据与你问的问题不是一起的,根据你的数据回答不了你的问题,根据你的问题,找不到解答所需的数据。
只能告诉你该怎么去做,不能能够怎么做可以达到目的。
#5
ymhy123452014-03-26 16:02
回复 4楼 风吹过b
是一起的,一楼的网页源码就是这个页面的源码http://stb.****.com/B1050-07-A12/test.aspx,三楼抓到的包,就是向这个页面发的包,俺的问题来了,就是这个页面太奇怪,要不断向这个页面发包才能浏览服务器上某一页面
#6
风吹过b2014-03-26 16:44
参数值是txtID,txtPassword

在1楼的源代码里,没有这二个输入域。
只有一个隐藏域:__VIEWSTATE

输入域,多数是以 Input 开头,多行文本、单选和多选是另一个单词开头。
按钮域有二个,一个是 提交,另一个是 重填,这个可以不管

提交,也要看它是以什么提交,如果 使用 JS 提交,有可能需要 执行 JS 才能提交,
#7
ymhy123452014-03-26 17:18
回复 6楼 风吹过b
有两个页面的,一个登陆页面,一个发包页面,参数值是txtID,txtPassword是登陆页面stb.****.com,这个页面俺用账号密码成功登陆进去,
登陆后,IE浏览器向另一页面发POST包http://stb.****.com/B1050-07-A12/test.aspx
奇怪了,要不断向这个页面http://stb.****.com/B1050-07-A12/test.aspx
发POST包才能浏览服务上其他页面,如果不发包,则跳到登陆页面stb.****.com,似乎服务器上有神马拦截器,俺想向这个服务器不断发包,浏览服务器上的页面。正在研究中。。。。

[ 本帖最后由 ymhy12345 于 2014-3-26 17:21 编辑 ]
1