ACCESS通过MSXML2.XMLHTTP实现与Web服务器的通信
时 间:2023-12-11 08:05:34
作 者:双鱼座的20年 ID:63297 城市:西安
摘 要:ACCESS通过MSXML2.XMLHTTP实现与Web服务器的通信,这个可以大大扩展vba本身的不足,一些复杂的应用可以在web服务器端执行,并把结果传递给access,单纯把access作为web的前端使用。
正 文:
步骤一:在盟威软件Access快速开发平台的SysLocalParameters表中,新增两个参数,分别是HOST和PORT,后续可以通过GetParameter(parameter)获得对应的配置信息。如下图:
步骤二:在VBE中创建一个类模块名字为myHTTP,用Private(如果你想向外暴露的话也可以用Public)的方式创建两个对象分别是HOST和REQUEST。HOST,将在类被实例化的时候获取我们设置在SysLocalParameters中的web后端服务器IP及端口信息,REQUEST将以MSXML2.XMLHTTP的形式创建成一个web请求/响应对象。
并创建两个web请求方法,分别是GET请求和POST请求。如下图:
步骤三:需要说明的是,我们在POST的请求头设置采用了JSON的形式进行信息交互,然而VBA这个老古董真心不支持JSON的数据类型,因此我们只能将JSON作为形似JSON 的字符串进行解析,为了更好的解析这些数据因此需要对web端发送过来的数据根据需求进行一些格式转换,以下是对应的转换方法(没有完整测试,不保证没有bug)。
3.1 在VBE的工具中导入MicroSoft Scripting Runtime的库;
3.2 在VBE中的模块中创建一个basUDF的模块,并写入以下函数,如下图:
以上代码中函数命名的可读性已经很强了,请大家自行理解。
步骤四:以基于Python的FastAPI框架快速的创建一个web服务,用pycharm的IDE快速创建一个web服务,并启动,如下图:
如上图所示,在这个服中定义了两个路由,分别对应了url的get和post方法,且在本地计算机启动,对应的本机IP:127.0.0.1,服务端口为8000,当然也可以根据需要采用uvicorn,启动fastapi的web服务,并更改host以及服务端口等。以上,已经完成了用VBA以MSXML2.XMLHTTP访问web服务的所有准备,以下进行测试。
步骤五:
5.1. get的测试:在get的测试代码中,我们通过“/”的url直接访问了web服务中对一个“/”url下的get方法,并成功获得{hello:world}的返回值,http.REQUEST.stauts为200,状态描述为OK。如下图:
5.2 post的测试:在post的测试代码中,我们通过“/“的url访问了web服务中对应的”/”url下的post方法,与get请求不同的是,我们在请求中在请求体中携带了json请求信息,并成功获得{hello,FastAPI}的返回值,http.REQUEST.stauts为200,状态描述为OK。如下图:
Access快速开发平台QQ群 (群号:321554481) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- 根据变化的日期来自动编号的示例...(06.20)
- 【Access高效办公】按日期...(06.12)
- 合并列数据到一个文本框的示例;...(05.06)
- 通过命令按钮让Access列表...(04.24)
- 统计当月之前(不含当月)的记录...(03.11)
- 【Access Inputbo...(03.03)
- 按回车键后光标移动到下一条记录...(02.12)
- 【Access Dsum示例】...(02.07)
- Access对子窗体的数据进行...(02.05)

学习心得
最新文章
- 根据变化的日期来自动编号的示例;根...(06.20)
- Access快速开发平台--Acc...(06.16)
- 【Access高效办公】按日期区间...(06.12)
- Access快速开发平台--生成复...(06.07)
- 仓库管理实战课程(25)-导航菜单...(06.06)
- 仓库管理实战课程(24)-库存月结...(06.05)
- 分享一个简单的X氏家谱小示例(06.04)
- 仓库管理实战课程(23)-先入先出(06.02)
- 仓库管理实战课程(22)-代理商库...(05.30)
- 仓库管理实战课程(21)-安全库存...(05.28)