理解异步JavaScript方法参数及ziti-sdk-nodejs接口参数含义
ziti.Ziti_http_request 接口参数说明
这个接口是ziti-sdk-nodejs封装的、基于零信任网络发起HTTP请求的底层接口,所有请求流量均在Ziti私密网络内传输,不会暴露在公网,刚好匹配你给Azure App Service上的Express应用做安全加固的需求——接入Ziti后你的Express服务可以完全关闭公网访问入口,仅允许Ziti网络内的授权客户端访问,避免绝大多数公网攻击。
以下是接口各参数的具体含义:
基础入参(前3个)
url:目标服务的请求地址,支持填写Ziti零信任网络内的私有服务地址,无需公网可解析、可访问method:标准HTTP请求方法,字符串类型,可选值包括GET、POST、PUT、DELETE等headers:HTTP请求头配置,JSON对象格式,可传入Content-Type、鉴权token等标准请求头,也支持自定义业务头字段
回调入参(后3个,按顺序对应请求生命周期的三个阶段)
- 第一个回调(on_req 回调):请求实例创建成功时触发
回调入参的obj对象中包含req字段,即已初始化的Ziti请求实例,你可以通过该实例写入POST请求的请求体、结束请求写入操作等,示例代码中直接将该实例通过Promise返回给上层异步逻辑使用 - 第二个回调(on_resp 回调):服务端响应头完全接收完成时触发
回调入参的obj对象包含两个核心字段:code:HTTP响应状态码,比如200代表请求成功,403代表无权限访问,500代表服务端内部错误status:状态码对应的文本描述,比如200对应OK
示例代码中在这里做了状态码校验,非200直接标记任务失败并退出进程
- 第三个回调(on_resp_body 回调):接收响应体内容时触发,响应体可能分块传输,因此该回调可能被多次调用
回调入参的obj对象包含两个核心字段:len:当前接收到的响应体块长度,当值等于UV_EOF常量时代表响应体全部接收完成;如果值为负数代表传输过程出现错误body:当前接收到的响应体二进制内容,需要通过Buffer.from转成字符串或对应业务格式后才能正常读取
示例代码中在这里做了传输异常判断,同时打印了响应体内容。
内容的提问来源于stack exchange,提问作者Evan Gertis
相关产品推荐
相关产品推荐

