如何向 VFC HTTP In 节点传入参数并获取值?
在客户端调用 VFC HTTP In 节点生成的 URL 地址时,如何将参数传递到 HTTP In 节点里,并在 VFC 流中获取参数的值?
针对 GET 方式的 HTTP 请求,URL 传递参数的方式是作为查询参数传递的;如下述 GET 请求 URL:
https://suppiot2-visualflowcreator.xxxxxx.com/httpin/suppiot2/httpin/test?from=123&to=234
在上述请求中,from
和 to
作为 GET 请求的查询参数。
在 VFC 中,对应的 HTTP In 节点配置如下:
用户需要在 HTTP In 节点后面添加一个 function 节点,通过在 function 节点里面编写 JavaScript 代码来获取传入到 HTTP In 节点里的参数值:
const reqParam = msg.req.query
let from = parseInt(reqParam.from)
let to = parseInt(reqParam.to)
msg.payload = {
from, to
}
return msg
在 msg.req.query
对象里储存了传递进来的参数。
我们同时可以添加一个「debug 节点」来打印 HTTP In 节点接收到的具体参数信息。
可以看到下图中我们通过打印“整个 msg 对象”来查看 HTTP In 节点接收到的所有查询参数:
同理,针对其它方式的 HTTP 请求,用户可以在 HTTP In 节点配置不同的请求方式:
对于 POST 一类的非 GET 请求,请求参数大部分是放在请求体(Body)里的。用户可以参考章节:“2.1.3 打印请求对象”里的介绍,通过 debug 节点打印 msg 对象,来查看 POST 请求里的 body
参数。
在 Postman 中我们调用该 POST 请求:
修改 function 节点的代码来获取请求 body 的参数:
const body = msg.req.body
msg.payload = {
body
}
return msg
通过打印 msg 节点,我们可以看到 POST 请求中的 body 参数此时不为空: