如何使用VBS向REST API发送GET请求并获取返回响应
VBS 等效实现代码
以下代码可以实现和你给出的 PowerShell 命令完全一致的效果,自动使用当前 Windows 用户的默认凭据发送 GET 请求获取响应:
Option Explicit Dim httpObj, targetUrl, respContent ' 替换为你的实际API地址 targetUrl = "https://domain/password" ' 创建高版本XMLHTTP COM对象,支持默认凭据自动传递 Set httpObj = CreateObject("Msxml2.XMLHTTP.6.0") ' 打开GET请求:第三个参数为False表示同步请求,和PowerShell默认执行逻辑一致 ' 不手动传入用户名、密码参数,即默认调用当前用户的身份凭据 httpObj.Open "GET", targetUrl, False ' 可选配置:如果需要强制在所有场景下发送凭据,可取消注释下行 ' httpObj.setAutoLogonPolicy 0 ' 可选配置:根据API要求设置请求头,无特殊要求可删除 httpObj.setRequestHeader "Content-Type", "application/json" ' 发送请求 httpObj.Send ' 读取响应内容,可根据需求自行处理(如写入文件、赋值给其他变量等) respContent = httpObj.responseText WScript.Echo respContent ' 释放对象资源 Set httpObj = Nothing
补充说明
- 如果请求后返回401未授权错误,取消代码中
httpObj.setAutoLogonPolicy 0的注释即可,该配置会强制自动发送当前用户凭据到目标站点。 - VBS 没有内置JSON解析能力,如果API返回的是JSON格式数据,需要自行引入第三方VBS JSON解析工具处理,纯字符串响应可以直接使用。
- 如果需要异步执行请求,将
httpObj.Open的第三个参数改为True,再配合onreadystatechange事件处理响应即可,简单脚本场景下同步请求更符合原有PowerShell的使用习惯。
内容的提问来源于stack exchange,提问作者Ben Donachie
相关产品推荐
相关产品推荐

