VB使用XMLHTTP实现Post与Get的方法

所属分类: 软件编程 / vb 阅读数: 170
收藏 0 赞 0 分享

本文所述为visual basic6.0的一个模块方法,是使用XMLHTTP实现Post与Get功能,虽然是一个老代码,但是可以替代Inet控件,实现数据通讯。很值得学习借鉴一下。

主要模块代码如下:

'==========================================================
'| 模 块 名 | 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
更多精彩内容其他人还在看

VB调用Word拼写检查功能实例

这篇文章主要介绍了VB调用Word拼写检查功能,非常实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现的倒计时类代码详解

这篇文章主要介绍了VB实现的倒计时类代码,非常实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB读取线程、句柄及写入内存的API代码实例

这篇文章主要介绍了VB读取线程、句柄及写入内存的API代码实例,需要的朋友可以参考下
收藏 0 赞 0 分享

VB使用XMLHTTP实现Post与Get的方法

这篇文章主要介绍了VB使用XMLHTTP实现Post与Get的方法,有一定的借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现屏蔽文本框右键菜单的复制、粘贴等功能的方法

这篇文章主要介绍了VB实现屏蔽文本框右键菜单的复制、粘贴等功能,是非常实用的一个功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现鼠标绘图实例代码

这篇文章主要介绍了VB实现鼠标绘图实例代码,很实用的一个功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法

这篇文章主要介绍了VB的32位程序在64位系统中出现文件和注册表自动转向的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

VB的TextBox文本框实现垂直居中显示的方法

这篇文章主要介绍了VB的TextBox文本框实现垂直居中显示的方法,比较实用的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB6实现连接Access数据库的ADODB代码实现方法

这篇文章主要介绍了VB6实现连接Access数据库的ADODB代码实现方法,对于初学者掌握VB链接access数据库有着很好的借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

VB使用shell函数打开外部exe程序的实现方法

这篇文章主要介绍了VB使用shell函数打开外部exe程序的实现方法,是非常实用的一个功能,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多