VB使用XMLHTTP实现Post与Get的方法
作者:SunnyCoffee
时间:2026-06-29
浏览:1
VB6中用XMLHTTP替代Inet控件实现网络通讯,提供GetData与PostData函数,支持返回文本或二进制数据,内含BytesToStr函数解决乱码问题,代码完整、可直接嵌入项目,对老系统升级有实用参考价值。
本文目录
Visual Basic 6.0 虽然早已不是主流开发工具,但在一些遗留系统或特定场景下,依然有人坚守。这次要分享的是一个实用模块——利用 XMLHTTP 替代老旧的 Inet 控件,实现 POST 与 GET 数据通讯。代码本身不新,但思路清晰、逻辑完整,对于一些需要在 VB6 中处理网络请求的朋友来说,依然有不错的参考价值。

主要模块代码如下:
'==========================================================
'| 模 块 名 | XMLHTTP
'| 说 明 | 替代Inet控件,实现数据通讯
'==========================================================Public Enum DataEnum
ResponseText = 1
ResponseBody = 2
End Enum
Public Function GetData(ByVal Url As String, ByVal DataStic As DataEnum) As Variant
On Error GoTo ERR:
Dim XMLHTTP As Object
Dim DataS As String
Dim DataB() As Byte
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open "get", Url, True
XMLHTTP.send
While XMLHTTP.ReadyState <> 4
DoEvents
Wend
'--------------------------------------函数返回
Select Case DataStic
Case ResponseText
'--------------------------------直接返回字符串
DataS = XMLHTTP.ResponseText
GetData = DataS
Case ResponseBody
'--------------------------------直接返回二进制
DataB = XMLHTTP.ResponseBody
GetData = DataB
Case ResponseBody + ResponseText
'------------------------------二进制转字符串[直接返回字串出现乱码时尝试]
DataS = BytesToStr(XMLHTTP.ResponseBody)
GetData = DataS
Case Else
'--------------------------------无效的返回
GetData = ""
End Select
'--------------------------------------释放空间
Set XMLHTTP = Nothing
Exit Function
ERR:
GetData = ""
End Function
Public Function PostData(ByVal StrUrl As String, ByVal StrData As String, ByVal DataStic As DataEnum) As Variant
On Error GoTo ERR:
Dim XMLHTTP As Object
Dim DataS As String
Dim DataB() As Byte
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open "POST", StrUrl, True
XMLHTTP.setRequestHeader "Content-Length", Len(PostData)
XMLHTTP.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
XMLHTTP.send (StrData)
Do Until XMLHTTP.ReadyState = 4
DoEvents
Loop
'-----------------------------函数返回
Select Case DataStic
Case ResponseText
'--------------------------------直接返回字符串
DataS = XMLHTTP.ResponseText
PostData = DataS
Case ResponseBody
'--------------------------------直接返回二进制
DataB = XMLHTTP.ResponseBody
PostData = DataB
Case ResponseBody + ResponseText
'---------------------------二进制转字符串[直接返回字串出现乱码时尝试]
DataS = BytesToStr(XMLHTTP.ResponseBody)
PostData = DataS
Case Else
'--------------------------------无效的返回
PostData = ""
End Select
'------------------------------------释放空间
Set XMLHTTP = Nothing
Exit Function
ERR:
PostData = ""
End Function
Function BytesToStr(ByVal vIn) As String
strReturn = ""
For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn, i, 1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn, i + 1, 1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
BytesToStr = strReturn
End Function
作者最新文章
keyshot 安装教程中文版详细步骤图解
2026-10-13 10:04
3dmax动画选择窗口在哪里?不见了或不显示的解决方法
2026-10-03 11:16
win10家庭版能不能取消开机密码,操作步骤是什么
2026-10-02 12:46
行车记录仪不录像也不能拍照怎么回事及解决方法
2026-09-22 16:34
笔记本电脑开不了机怎么办按哪个键恢复正常
2026-09-22 14:42
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































