vb发post信息,非常简单,就一个函数

本文介绍了一个简单的自定义函数,用于通过POST方法发送HTTP请求,并解析返回的HTML信息。示例代码包括函数实现、调用方法及一个示例网站。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如题
Function HttpPost(Url As String, PostMsg As String) As String
     '自己写的发送Post的函数
     '函数返回值是获得的返回信息(HTML)
     '第一个参数是要发送的Url地址
     '第二个参数是要发送的消息(键值对应,不必编码)
     Dim XmlHttp As Object
     Set XmlHttp = CreateObject("Msxml2.XMLHTTP")
     If Not IsObject(XmlHttp) Then
         Set XmlHttp = CreateObject("Microsoft.XMLHTTP")
         If Not IsObject(XmlHttp) Then Exit Function
     End If
     XmlHttp.Open "POST", Url, False
     XmlHttp.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
     XmlHttp.Send EnUrl(PostMsg)
     Do While XmlHttp.readyState <> 4
         DoEvents
     Loop
     '如果把下面一行(以及后面的End IF)的注释去除,即设置为仅当返回码是200时才返回页面内容
     'If XmlHttp.Status = 200 Then
         HttpPost = XmlHttp.responseText
     'End If
End Function
直接把这个函数放进窗体/模块里就行,不必引用任何东西
用法:
msgbox httppost("http://baidu.com","name1=value1&name2=value2")
(上面的地址和参数是瞎写的)

-------------------
本人制作的非常非常垃圾的网站http://jybox.net

转载于:https://www.cnblogs.com/tianshuilv/p/3761170.html

VB中的POST回调函数可以通过Wininet.dll库中的InternetOpen、InternetConnect、HttpOpenRequest、HttpSendRequest等函数来实现。具体步骤如下: 1. 使用InternetOpen函数初始化一个会话句柄。 2. 使用InternetConnect函数连接到服务器。 3. 使用HttpOpenRequest函数创建一个HTTP请求句柄。 4. 使用HttpSendRequest函数送HTTP请求。 5. 使用InternetReadFile函数读取服务器返回的数据。 6. 使用InternetCloseHandle函数关闭会话句柄、连接句柄和请求句柄。 以下是一个简单的VB代码示例: ``` Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function HttpOpenRequest Lib "wininet.dll" Alias "HttpOpenRequestA" (ByVal hHttpSession As Long, ByVal sVerb As String, ByVal sObjectName As String, ByVal sVersion As String, ByVal sReferer As String, ByVal lAcceptTypes As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long Private Declare Function HttpSendRequest Lib "wininet.dll" Alias "HttpSendRequestA" (ByVal hHttpRequest As Long, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal sOptional As String, ByVal lOptionalLength As Long) As Long Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer Private Sub PostRequest() Dim hInternetSession As Long Dim hHttpConnection As Long Dim hHttpRequest As Long Dim sServerName As String Dim sObjectName As String Dim sPostData As String Dim sHeaders As String Dim lBytesWritten As Long Dim lBytesRead As Long Dim sResponse As String ' 初始化会话句柄 hInternetSession = InternetOpen("VB POST Request", 0, vbNullString, vbNullString, 0) ' 连接到服务器 sServerName = "www.example.com" hHttpConnection = InternetConnect(hInternetSession, sServerName, 80, vbNullString, vbNullString, 3, 0, 0) ' 创建HTTP请求句柄 sObjectName = "/post.php" hHttpRequest = HttpOpenRequest(hHttpConnection, "POST", sObjectName, "HTTP/1.1", vbNullString, 0, 0, 0) ' 设置POST数据和请求头 sPostData = "name=value" sHeaders = "Content-Type: application/x-www-form-urlencoded" & vbCrLf & "Content-Length: " & Len(sPostData) ' 送HTTP请求 HttpSendRequest hHttpRequest, sHeaders, Len(sHeaders), sPostData, Len(sPostData) ' 读取服务器返回的数据 sResponse = "" Do Dim sBuffer As String sBuffer = Space(1024) InternetReadFile hHttpRequest, sBuffer, Len(sBuffer), lBytesRead sResponse = sResponse & Left(sBuffer, lBytesRead) Loop While lBytesRead > 0 ' 关闭句柄 InternetCloseHandle hHttpRequest InternetCloseHandle hHttpConnection InternetCloseHandle hInternetSession ' 输出服务器返回的数据 MsgBox sResponse End Sub ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值