VB6使用Com组件SystemNetLib线程访问网络

VB6使用Com组件SystemNetLib线程访问网络
HTTPClientTask对象


说明
HTTP请求对象,支持Get/Post请求,请求是基于线程。
基于Curl库,用Get/Post方法请求网址,返回内容。
支持http和https协议。
支持gzip、deflate、br自动解压
持续使用内存会不断增长,达到一定峰值后不会继续增长,使用完后内存自动回收
支持返回响应头
支持设置超时时间
支持返回特殊字符

Get函数

参数

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

标签:线程   示例   变量   组件   字符   单位   事件   操作   网址   时间   内容   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top