VBMAN API 调用示例
概述
这个示例展示了如何使用 VBMAN 框架调用外部 API 接口,包括了 HTTP GET/POST 请求、参数设置、响应解析等功能。
项目结构
下载源码 [ 注意:重新到bin目录注册 DLL 文件 ]
代码请到首页下载 VBMAN 项目,解压后,打开包含所有 DEMO 项目。
ApiCall/
├── src/ # 源代码目录
│ ├── Form1.frm # 主窗体
│ └── ApiCall.vbp # 项目文件
└── dist/ # 编译输出目录
└── ApiCall.exe # 可执行文件核心代码解析
1. API 调用示例
vb
'创建HTTP客户端
Dim http As New cHttpClient
'GET请求示例(一句示例,使用全局 VBMAN 对象)
MsgBox VBMAN.HttpClient.SendGet("http://api.example.com/users").ReturnText()
'POST请求示例
With new cHttpClient
Const Url as String = "http://api.example.com/users/list"
'设置请求头,比如要求提供 token 的接口,在这里设置
.RequestHeader.Add "Authorization", "Bearer " & token
'如果需要在URL后面加一些参数,可以这样构造,内部会自动拼接的
.RequestDataQuery.Add "time", Now()
.RequestDataQuery.Add "version", 1.0.0
'以下数据格式 二选一
'1, 如果接口要求 表单 数据格式
'设置POST数据 表单数据
.RequestDataBody.Add "search","邓伟"
.RequestDataBody.Add "sort","ASC"
'发送请求,此时参数2 不用写,内部会自动构建表单并 urlencode
.SendPost Url
'2, 如果接口要求 Json 数据格式
'设置POST数据 先构造 Json 对象
With new cJson
.Item("search") = "邓伟"
.Item("sort") = "ASC"
'接下来把对象转为 Json 字符串给变量,下面要使用
Const PostData as String = .Encode()
End With
'发送请求,设置内容格式为Json(因为默认是表单)Json字符串传给参数2
.SetRequestContentType JsonString
.SendPost Url, PostData
'处理响应,如果出错就不会走到这一行,所以应该使用 On Error 包裹错误处理
With .ReturnJson() '.ReturnBody 返回二进制, .ReturnText 返回文本
if .Root("code") = 0 then
dim i as long, x as variant
'这里可以处理后端返回的数据,比如遍历记录集,数组从1开始,
for i = 1 to .Root("data")("count")
List1.AddItem .Root("data")("rs")(i)("username")
next
'也可以使用 for each 更加简洁
for each x in .Root("data")("rs")
list2.AddItem x("username")
next
Else
MsgBox .Root("msg") '显示后端返回的错误信息
End if
End With
End With2. 文件上传示例
vb
'文件上传
With http
.FormData.Add "file", "c:\test.jpg"
.FormData.Add "name", "测试图片"
.Post "http://api.example.com/upload"
End With3. 批量请求示例
vb
'并发请求
With http
.AsyncMode = True '开启异步模式
'发起多个请求
.Get "http://api1.example.com"
.Get "http://api2.example.com"
.Get "http://api3.example.com"
'等待所有请求完成
.WaitAll
'获取响应
For Each res In .AsyncResponses
Debug.Print res.url, res.status
Next
End With功能说明
HTTP 请求功能
- GET/POST/PUT/DELETE 等方法支持
- 表单提交(application/x-www-form-urlencoded)
- 文件上传(multipart/form-data)
- JSON 数据(application/json)
- 异步请求
请求配置
- 请求头设置
- Cookie 管理
- 超时设置
- 代理设置
- SSL/TLS 支持
响应处理
- 状态码检查
- 响应头解析
- JSON 解析
- 文件下载
- 字符集处理
技术要点
- HTTP 协议实现
- HTTPS 安全通信
- 异步编程模型
- 错误处理机制
应用场景
- 第三方 API 集成
- 微服务通信
- 文件上传下载
- 数据同步
扩展建议
- 添加请求重试机制
- 实现请求队列
- 添加响应缓存
- 实现请求限流
- 支持 WebSocket