VB使用XMLHTTP实现Post与Get的方法
作者:SunnyCoffee
时间:2026-06-29
浏览:0
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
作者最新文章
行车记录仪不录像也不能拍照怎么回事及解决方法
2026-09-22 16:34
笔记本电脑开不了机怎么办按哪个键恢复正常
2026-09-22 14:42
在线PDF文件合并教程:多文件快速合成为一个完整文档
2026-09-03 12:06
吉利银河TT全球征名脱颖而出 最高725km续航引领C级纯电轿车新潮流
2026-08-25 10:37
ios16.2天气小组件无数据怎么办 ios16.2天气小组件无数据解决方法
2026-08-24 17:11
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多


































