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)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access判断多条明细的配方或订...(11.30)
- 如何让后台数据库在局域网共享时,且...(11.29)
- 【Access月初月末日期设置方法...(11.29)
- 【Access IIF函数嵌套示例...(11.26)
- Access快速开发平台--使用组...(11.25)
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)