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

所属分类: 软件编程 / vb 阅读数: 193
收藏 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实现禁用任务管理器的方法

本文给大家介绍的是使用VB来实现禁用任务管理器的方法和示例,十分的简单实用,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

VB键盘鼠标无动作调用程序的尝试

这篇文章主要介绍了VB键盘鼠标无动作调用程序的尝试,记录下整个思路和过程,有需要的小伙伴可以参考下。
收藏 0 赞 0 分享

VB使用ADO操作Access数据库

这篇文章主要介绍了VB使用ADO操作Access数据库的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

VB打开与保存txt文件的方法

这篇文章主要介绍了VB打开与保存txt文件的方法,涉及使用VB操作文本文件的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现按行读取文本文件的方法

这篇文章主要介绍了VB实现按行读取文本文件的方法,涉及使用VB操作文件读取的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VB获取文件大小的方法

这篇文章主要介绍了VB获取文件大小的方法,可实现准确获取文件大小的功能,需要的朋友可以参考下
收藏 0 赞 0 分享

VB返回记录集结果到HTML表格的方法

这篇文章主要介绍了VB返回记录集结果到HTML表格的方法,实例分析了VB获取记录集与HTML表格生成的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VB实现的《QQ美女找茬游戏》作弊器实例

这篇文章主要介绍了VB实现的《QQ美女找茬游戏》作弊器,以一个完整实例形式分析了VB实现《QQ美女找茬游戏》作弊器的相关技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

VB关机恶搞小程序

本文给大家汇总了一些使用VB实现的关机恶搞小程序,大家娱乐一下就行了,千万别做坏事哦
收藏 0 赞 0 分享

VB FileSystemObject对象实例详解

FileSystemObject对象被用来访问服务器上的文件系统。这个对象能够处理文件、文件夹和目录路径。用它来检索文件系统信息也是可能的,而且vb与vbs、asp都是差不多的语法
收藏 0 赞 0 分享
查看更多