当前位置: 首页 > news >正文

VB中Http请求测试

最近帮助公司维护一个VB的项目,需要用到Http请求与Java服务进行通信,这里记录下VB端的实现和代码。

1.1页面

在这里插入图片描述

1.2代码

gitLab地址:https://gitlab.com/982837387/vbhttpdemo


'POST发送
Private Sub button1_Click()

    Dim str As String
    str = Text3.Text
    
    Dim JsonStr As String
    JsonStr = Text2.Text
    
    
    MsgBox "Input JSON string: " & JsonStr
    
    
   '发送http post请求
    Dim responseStr As String
    responseStr = HttpPOST(str, JsonStr)
   
   '文本框赋值
    Text1.Text = responseStr
 
End Sub

'GET发送
Private Sub button2_Click()
    Dim str As String
    str = Text4.Text
    
    Dim JsonStr As String
    JsonStr = Text2.Text
    
    Dim accessToken As String
    Dim api As Boolean
    accessToken = JSONParse("accessToken", JsonStr)
    api = JSONParse("api", JsonStr)

    '发送http post请求
    Dim responseStr As String
    responseStr = HttpGET(str, accessToken, api)

    '文本框赋值
    Text1.Text = responseStr
End Sub

'POST请求
'函数返回值是返回信息
'Url:发送的Url地址
'PostMsg:要发送的数据

Function HttpPOST(URL As String, PostMsg As String) As String
On Error GoTo er
Dim XMLHTTP As Object
Set XMLHTTP = CreateObject("Msxml2.XMLHTTP")
If Not IsObject(XMLHTTP) Then
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    If Not IsObject(XMLHTTP) Then Exit Function
End If

'' 同步接收数据
XMLHTTP.Open "POST", URL, False
XMLHTTP.SetRequestHeader "CONTENT-TYPE", "application/json"
XMLHTTP.Send (PostMsg)

Do While XMLHTTP.ReadyState <> 4
    DoEvents
Loop

If XMLHTTP.Status = 200 Then
    HttpPOST = XMLHTTP.ResponseText
Else
    HttpPOST = ""
End If

Exit Function
er:
    MsgBox "发送POST请求失败!", , "提示"
End Function


'GET请求

Function HttpGET(URL As String, accessToken As String, api As Boolean) As String
On Error GoTo er
Dim XMLHTTP As Object
Set XMLHTTP = CreateObject("Msxml2.XMLHTTP")
If Not IsObject(XMLHTTP) Then
    Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
    If Not IsObject(XMLHTTP) Then Exit Function
End If

'' 同步接收数据
XMLHTTP.Open "GET", URL, False
XMLHTTP.SetRequestHeader "accessToken", accessToken
XMLHTTP.SetRequestHeader "api", api
XMLHTTP.SetRequestHeader "CONTENT-TYPE", "application/json"
XMLHTTP.Send

Do While XMLHTTP.ReadyState <> 4
    DoEvents
Loop

If XMLHTTP.Status = 200 Then
    HttpGET = XMLHTTP.ResponseText
Else
    HttpGET = ""
End If

Exit Function
er:
    MsgBox "发送GET请求失败!", , "提示"
End Function


'方法一
Public Function POST(ByVal URL As String, ByVal JSONData As String) As String
    Dim HTTP As Object
    Set HTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    HTTP.Option(6) = False
    HTTP.Option(4) = 13056
    HTTP.Open "POST", URL
    HTTP.SetRequestHeader "Content-Type", "application/json"
    HTTP.SetRequestHeader "Content-Length", LenB(StrConv(JSONData, vbFromUnicode))
    HTTP.Send JSONData
    
    POST = HTTP.ResponseText
    Set HTTP = Nothing
End Function



Public Function JSONParse(ByVal JSONPath As String, ByVal JSONString As String) As Variant
    Dim JSON As Object
    Set JSON = CreateObject("MSScriptControl.ScriptControl")
    JSON.language = "JScript"
    JSONParse = JSON.Eval("JSON=" & JSONString & ";JSON." & JSONPath & ";")
    Set JSON = Nothing
End Function


Private Sub Command1_Click()
'文本框赋值
    Text1.Text = ""
End Sub

2.测试结果

post请求
在这里插入图片描述

get请求
在这里插入图片描述

相关文章:

  • springboot集成SqlServer的坑
  • HttpClient请求Https证书问题解决
  • springcloud中使用ribbon实现负载均衡报错问题
  • Spring基础
  • Spring创建对象的几种方式
  • Java服务后台启动问题总结
  • springboot自定义starter并上传至公网调用
  • 正向代理、反向代理、负载均衡
  • 64位linux编译32位程序
  • Python tips: 什么是*args和**kwargs?
  • 关于SAP UI5数据绑定我的一些原创内容
  • 安卓微信视频最佳实践
  • 触摸事件分发核心机制优化吸收
  • 异常机制详解
  • oracle 10g 搭建备库以及一次DG GAP的处理情况
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • 77. Combinations
  • CentOS 7 修改主机名
  • django开发-定时任务的使用
  • Java 最常见的 200+ 面试题:面试必备
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Mysql5.6主从复制
  • PHP的类修饰符与访问修饰符
  • Python3爬取英雄联盟英雄皮肤大图
  • Redash本地开发环境搭建
  • STAR法则
  • Vue小说阅读器(仿追书神器)
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 对超线程几个不同角度的解释
  • 嵌入式文件系统
  • 悄悄地说一个bug
  • 容器服务kubernetes弹性伸缩高级用法
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 提醒我喝水chrome插件开发指南
  • 微信小程序:实现悬浮返回和分享按钮
  • 我这样减少了26.5M Java内存!
  • 一、python与pycharm的安装
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 关于Android全面屏虚拟导航栏的适配总结
  • # Maven错误Error executing Maven
  • #if 1...#endif
  • #LLM入门|Prompt#3.3_存储_Memory
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (175)FPGA门控时钟技术
  • (3)STL算法之搜索
  • (3)选择元素——(17)练习(Exercises)
  • (52)只出现一次的数字III
  • (Git) gitignore基础使用
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (七)c52学习之旅-中断