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

 更新时间:2014年07月31日 10:55:46   投稿:shichen2014  
这篇文章主要介绍了VB使用XMLHTTP实现Post与Get的方法,有一定的借鉴价值,需要的朋友可以参考下

本文所述为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使用ADO操作Access数据库

    VB使用ADO操作Access数据库

    这篇文章主要介绍了VB使用ADO操作Access数据库的相关资料,需要的朋友可以参考下
    2015-06-06
  • VB实现的《QQ美女找茬游戏》实例

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

    这篇文章主要介绍了VB实现的《QQ美女找茬游戏》,以一个完整实例形式分析了VB实现《QQ美女找茬游戏》的相关技巧,需要的朋友可以参考下
    2015-06-06
  • Windows 10 x64 安装 Visual Basic 6.0 SP6注意事项

    Windows 10 x64 安装 Visual Basic 

    这篇文章主要介绍了Windows 10 x64 安装 Visual Basic 6.0 SP6注意事项,需要的朋友可以参考下
    2023-06-06
  • VB编程的八个优良习惯

    VB编程的八个优良习惯

    VB编程的八个优良习惯...
    2007-03-03
  • VB简单实现防止文件被改写

    VB简单实现防止文件被改写

    这篇文章主要介绍了VB简单实现防止文件被改写的方法,十分的简单实用,有需要的小伙伴可以参考下。
    2015-06-06
  • Basic求10000以内的完美数

    Basic求10000以内的完美数

    一个数的所有真因数加起来正好等于这个自然数本身,在数学上,具有这种性质的自然数叫做完全数。关键是求出该自然数k的所有因子。如果k%i为0,则i为k的因子,用循环语句求出k 的所有真因子(1<=i<=k/2),把它们求和,看是否等于k来判断。
    2015-05-05
  • VB6中的LSet语句和RSet语句详解

    VB6中的LSet语句和RSet语句详解

    这篇文章主要介绍了VB6中的LSet语句和RSet语句详解,LSet语句和RSet语句不太常用,所以知道的人不多,需要的朋友可以参考下
    2014-07-07
  • VBA中连接SQLSERVER数据库例子

    VBA中连接SQLSERVER数据库例子

    这篇文章主要介绍了VBA中连接SQLSERVER数据库例子,VBA是指Visual Basic for Applications,是Visual Basic的一种宏语言,需要的朋友可以参考下
    2014-07-07
  • VB键盘鼠标无动作调用程序的尝试

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

    这篇文章主要介绍了VB键盘鼠标无动作调用程序的尝试,记录下整个思路和过程,有需要的小伙伴可以参考下。
    2015-06-06
  • VB的TextBox文本框实现垂直居中显示的方法

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

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

最新评论