vb post html,VB使用XMLHTTP实现Post与Get的方法

'==========================================================

'| 模 块 名 | 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值