一,、用Webbrowser
代碼:Webbrowser.navigate ("http://xxx/1.htm?name=apple&id=001")
二、用Inet (注意數(shù)據(jù)接收方式是POST還是GET ,,具體的方式是在1.htm的<form>...</form>中
代碼:(post方式)
1、設(shè)定數(shù)據(jù)頭:
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,、設(shè)定要發(fā)的數(shù)據(jù):
strsenddata= "name=apple&id=001"
3,、發(fā)送地址:
strsendadd="http://xxx/1.htm
3、發(fā)送數(shù)據(jù):
Inet.execute strsendadd,"POST",strsenddata,strsendHead
Inet (Get方式) GET方式比POST簡單的多
代碼:
strsenddata = "http://xxx/1.htm?apple&id=001"
Inet.execute strsenddata,"GET"
三,、用winsock
1,、設(shè)定數(shù)據(jù)頭:
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、設(shè)定要發(fā)的數(shù)據(jù):
strsenddata= "name=apple&id=001"
strSend = strSendHeader & vbCrLf & strSendData
3,、發(fā)送地址:
strsendadd="http://xxx/1.htm
4,、建立連接
Winsock.RemoteHost = "http:/xxx/"
Winsock.RemotePort = 80
Winsock.Protocol = sckTCPProtocol
winsock.connect
Winsock1.SendData strsend
Winsock.close
|
|
首先,要構(gòu)造一個HTTP頭,,可詳細了解下HTTP協(xié)議數(shù)據(jù)頭結(jié)構(gòu),。HTTP頭是以空行結(jié)束的,即從數(shù)據(jù)開始到第一個空行之間的數(shù)據(jù)是HTTP數(shù)據(jù)頭部,。
這里,,用POST提交數(shù)據(jù),HTTP頭部的下面三項是不可少的:
POST /vote.asp HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: www.***.cn
對于GET方式提交,,則不需要Content-Type這項,。每行以一個回車符和一個換行符結(jié)束,VB里就是 vbCrLf ,。如果訪問需要登陸的網(wǎng)頁,,則Cookies 這項是不可少的。
對于POST提交,,通過抓包的數(shù)據(jù)可以看到,,第一個空行之后(即HTTP數(shù)據(jù)頭之后)還有其他內(nèi)容,這里是
VoteOption=7&VoteType=Single&Action=Vote&ID=10
這就是提交的數(shù)據(jù),,HTTP頭部有Content-Type: application/x-www-form-urlencoded 這項,,服務(wù)器就會處理這些數(shù)據(jù),數(shù)據(jù)格式和GET提交是一樣的,,即
名稱2=值2&名稱2=值2
要發(fā)送這樣的數(shù)據(jù),,先構(gòu)造一個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控件發(fā)送這個字符串就行了。當(dāng)然,,先要和服務(wù)器建立連接,,因為HTTP用的是TCP協(xié)議,。
要更詳細的內(nèi)容,自己查下HTTP協(xié)議相關(guān)的資料,。
|