VB6使用Com组件SystemNetLib线程访问网络
HTTPClientTask对象
说明
HTTP请求对象,支持Get/Post请求,请求是基于线程。
基于Curl库,用Get/Post方法请求网址,返回内容。
支持http和https协议。
支持gzip、deflate、br自动解压
持续使用内存会不断增长,达到一定峰值后不会继续增长,使用完后内存自动回收
支持返回响应头
支持设置超时时间
支持返回特殊字符
参数
URL:网址,支持http和https
RequestHeaders:向网址发起的请求头
IsUTF8:是否是UTF8编码。0-非UTF8编码,1-UTF8字符
ConnectTimeOut:连接超时时间,单位秒
TimeOut:总超时时间,单位秒
ResponseAutoDecode:是否自动解码返回内容。比如IsUTF8=1时,自动将UTF8结果字符解码为Unicode字符
NeedListen:是否需要监听。0-不监听 1-监听 监听可使用WithEvent关键词声明公共变量,响应OnTaskFinished事件,事件不能操作UI
示例
Set ClientTask = New HTTPClientTask
With ClientTask
.Get "https://www.baidu.com/"
Do While .IsFinish = False
DoEvents
Loop
txtLog.Text = .GetResponse()
End With
Set ClientTask = Nothing
结果
响应事件例子
Dim WithEvents WebNet As HTTPClientTask
Private Sub cmdDoGet_Click()
Set WebNet = New HTTPClientTask
WebNet.Get "https://www.baidu.com/", , , , , , 1
End Sub
Private Sub WebNet_OnTaskFinished(ResponseHeaders As String, ResponseBody As String)
RspBody = ResponseBody
’回调不支持操作UI,所以用Timer来显示结果
tmShow.Interval = 1
tmShow.Enabled = True
Set WebNet = Nothing
End Sub
Private Sub tmShow_Timer()
tmShow.Enabled = False
WebBrowser1.Document.body.innerText = RspBody
End Sub
Post函数
参数
URL:网址,支持http和https
PostDatas:请求内容
RequestHeaders:向网址发起的请求头
IsUTF8:是否是UTF8编码。0-非UTF8编码,1-UTF8字符
ConnectTimeOut:连接超时时间,单位秒
TimeOut:总超时时间,单位秒
PostDataAutoEncode:是否自动编码请求内容。比如IsUTF8=1时,自动将Unicode请求字符转码为UTF8字符
ResponseAutoDecode:是否自动解码返回内容。比如IsUTF8=1时,自动将UTF8结果字符解码为Unicode字符
NeedListen:是否需要监听。0-不监听 1-监听 监听可使用WithEvent关键词声明公共变量,响应OnTaskFinished事件,事件不能操作UI
示例
Set ClientTask = New HTTPClientTask
With ClientTask
.Post "https://***/api/login", "{""account"": ""AAAAA"",""password"": ""123456""}", "accept: application/json" & vbCrLf & "Content-Type: application/json"
Do While .IsFinish = False
DoEvents
Loop
txtLog.Text = .GetResponse()
End With
Set ClientTask = Nothing
结果
响应事件例子
Dim WithEvents WebNet As HTTPClientTask
Private Sub cmdDoGet_Click()
Set WebNet = New HTTPClientTask
WebNet.Post "https://***/api/login", "{""account"": ""AAAAA"",""password"": ""123456""}", "accept: application/json" & vbCrLf & "Content-Type: application/json", , , , , , 1
End Sub
Private Sub WebNet_OnTaskFinished(ResponseHeaders As String, ResponseBody As String)
RspBody = ResponseBody
’回调不支持操作UI,所以用Timer来显示结果
tmShow.Interval = 1
tmShow.Enabled = True
Set WebNet = Nothing
End Sub
Private Sub tmShow_Timer()
tmShow.Enabled = False
WebBrowser1.Document.body.innerText = RspBody
End Sub
页面更新:2024-03-15
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号