分享

VB发送POST数据

 zele 2011-02-10
一、用Webbrowser
代码:Webbrowser.navigate ("http://xxx/1.htm?name=apple&id=001")
二、用Inet (注意数据接收方式是POST还是GET ,具体的方式是在1.htm的<form>...</form>中
代码:(post方式)
1、设定数据头:
strSendHeader = "POST /hotbuy/myhotbuy.php HTTP/1.1" & vbCrLf
strSendHeader = strSendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strSendHeader = strSendHeader & "Content-Length: " & iSendLength & vbCrLf
2、设定要发的数据:
strsenddata= "name=apple&id=001"
3、发送地址:
strsendadd="http://xxx/1.htm
3、发送数据:
Inet.execute strsendadd,"POST",strsenddata,strsendHead
Inet (Get方式) GET方式比POST简单的多
代码:
strsenddata = "http://xxx/1.htm?apple&id=001"
Inet.execute strsenddata,"GET"
三、用winsock
1、设定数据头:
strSendHeader = "POST /hotbuy/myhotbuy.php HTTP/1.1" & vbCrLf
strSendHeader = strSendHeader & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
strSendHeader = strSendHeader & "Content-Length: " & iSendLength & vbCrLf
2、设定要发的数据:
strsenddata= "name=apple&id=001"
strSend = strSendHeader & vbCrLf & strSendData
3、发送地址:
strsendadd="http://xxx/1.htm
4、建立连接
Winsock.RemoteHost = "http:/xxx/"
Winsock.RemotePort = 80
Winsock.Protocol = sckTCPProtocol
winsock.connect
Winsock1.SendData strsend
Winsock.close
首先,要构造一个HTTP头,可详细了解下HTTP协议数据头结构。HTTP头是以空行结束的,即从数据开始到第一个空行之间的数据是HTTP数据头部。
这里,用POST提交数据,HTTP头部的下面三项是不可少的:

POST /vote.asp HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.***.cn

对于GET方式提交,则不需要Content-Type这项。每行以一个回车符和一个换行符结束,VB里就是 vbCrLf 。如果访问需要登陆的网页,则Cookies 这项是不可少的。
对于POST提交,通过抓包的数据可以看到,第一个空行之后(即HTTP数据头之后)还有其他内容,这里是
VoteOption=7&VoteType=Single&Action=Vote&ID=10
这就是提交的数据,HTTP头部有Content-Type: application/x-www-form-urlencoded 这项,服务器就会处理这些数据,数据格式和GET提交是一样的,即
名称2=值2&名称2=值2

要发送这样的数据,先构造一个HTTP头

dim str as string
str="POST /vote.asp HTTP/1.1" & vbCrLf
str=str & "Content-Type: application/x-www-form-urlencoded " & vbCrLf
str=str & "Host: www.***.cn" & vbCrLf
str=str & vbCrLf '这里加个空行
str=str & "VoteOption=7&VoteType=Single&Action=Vote&ID=10 "

然后用 Winsock控件发送这个字符串就行了。当然,先要和服务器建立连接,因为HTTP用的是TCP协议。
要更详细的内容,自己查下HTTP协议相关的资料。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多