- 1. 前言
- 2. 节点配置概述
- 3. 使用代码来配置http request节点
- 4. 表单data,文件上传
前言
在node-red中,如果你想要Request外部资源,比如获取当地天气,这个时候就可以使用http request节点,这个节点可以让你的node-red应用集成各种接口,data。不受跨域的限制,可以访问大部分的http接口。支持的Request方法也比较全,GET,PUT,POST,PATCH或DELETE都是可以的。并且支持Customization头部,cookie,Requestaddress模板化,上传文件,Request超时。等各种强大的Function。本篇文件就来详细介绍一下他的各种用法,帮助大家快速地掌握起来,提升工作效率。
节点配置概述
该节点 有输入,有输出
输入的配置项有这些
url 如果未在节点中配置,则此可选属性设置Request的url。method 如果未在节点中配置,则此可选属性设置Request的HTTP方法。必须是GET,PUT,POST,PATCH或DELETE之一。headers 设置Request的HTTP头。cookies 如果设置,则可用于send带有Request的cookie。payload send为Request的正文。rejectUnauthorized 如果设置为false,则允许对使用自签名证书的https站点进行Request。followRedirects 如果设置为false,则阻止遵循重定向(HTTP 301)。默认情况下为truerequestTimeout 如果设置为正数毫秒,将覆盖全局设置的httpRequestTimeout参数。
输出的参数
payload Response的正文。可以将节点配置为以字符串形式返回主体,尝试将其Parse为JSON字符串或将其保留为binarybuffer。statusCode Response的状态码,如果Request无法Complete,则返回Error码。headers 包含Response头的对象。responseUrl 如果在处理Request时发生任何重定向,则此属性为最终重定向的URL。否则则为原始Request的URL。responseCookies 如果Response包含cookie,则此属性是每个cookie的‘名称/值’键值对的对象。redirectList 如果Request被重定向了一次或多次,则累积的信息将被添加到此属性。“location”是下一个重定向目标。cookie是从重定向源返回的cookie。
以上是翻译的官方英文Document。下面我们看一下具体的特殊用法。
使用代码来配置http request节点
该节点的输入参数,可以在配置面板里,配置,
但同时也可以在流中设置。
比如你要用GET方法Requesthttps://fizzz.blog.csdn.net/address。
除了在面板里配置外,你还可以这样在http request接口前使用function节点这样Request参数
msg.method = 'GET'
msg.url = 'https://fizzz.blog.csdn.net/'
除此之外,你还可以设置多个Customization的Headers
如例
msg.method = 'GET'
msg.url = 'https://fizzz.blog.csdn.net/?name=fizz&age=18'
msg.headers = {}
msg.headers['X-Auth-User'] = 'fizz'
msg.headers['X-Auth-Key'] = 'fizz-key'
在配置http request 节点的配置参数中,你可以使用模板来引用msg中的变量
如下,将url配置成这样https://{{domin}}.blog.csdn.net/
变量domin在上游注入到msg中msg.domin。
当你使用的是POSTRequest时,参数应该这样设置
msg.method = 'POST'
msg.url = 'https://fizzz.blog.csdn.net/?name=fizz&age=18'
msg.payload = {}
msg.payload.name = 'fizz'
msg.payload.key = 'fizz-key'
表单data,文件上传
如果请data为表单data,应将msg.headers[“content-type”]设置为application/x-www-form-urlencoded。
对于上传文件的Scene,需要特殊设置一下http request节点
要执行文件上传,应将msg.headers[“content-type”]设置为multipart/form-data和msg.payload传递给节点的必须是具有以下结构的对象:
{
"KEY": {
"value": FILE_CONTENTS,
"options": {
"filename": "FILENAME"
}
}
}
KEY,FILE_CONTENTS和FILENAME的值应设置为适当的值。
发表回复