HTTP Client¶
HTTP Client 节点建立一个可调用 API 的客户端,向 HTTP 服务器发出请求。
节点类型¶
External。
输入和输出能力¶
该节点具有 1 个入口点和 1 个出口点。输入和输出可以是任何格式。
正文会自动输出到 msg,而表头和属性信息会存储在 metadata,可以使用 ${metadata.key}
进行查询,其中 key 对应于表头/属性的 key。
节点属性¶
名称
该节点的名称。
请求
该节点向服务器发出请求时所用的方法。支持的请求方法有 GET、POST、PUT、DELETE、上传文件 和 下载文件。
上传文件/下载文件 是一种建立在 GET/POST 基础上的请求方法。上传文件没有大小限制,下载文件的最大文件大小为 100M。
URL
HTTP 服务器的 URL。
选择上传文件作为请求方法时,如果填写的是 HTTP Server 节点中提供的 HTTP 服务器的 URL,可以在另一个流中使用 HTTP Server 节点查看文件是否上传成功。如果填写的是 EnOS 外部 HTTP 服务器的 URL,则需要通过所连接的服务器查看文件是否上传成功。
请求 Body 类型
选择 POST、PUT 或 DELETE 作为请求方法时,需要选择请求数据的类型。支持的类型有 Body 和 Form 两种。
文件路径
选择 下载文件 作为请求方法时,需要填写保存文件的路径,以正斜杠开头,例如 /fileName.txt
。后续可通过在当前流中添加 File 节点获取文件内容。
超时
该节点的请求超时时间。单位为毫秒,默认值为 30,000。如果该节点在超时时间内未收到来自服务器的任何响应,请求将会超时。可用的最短超时时间为 1,000 毫秒。
鉴权
验证该节点发出请求所用的方式。支持的方式如下所述。
匿名:无需鉴权。
用户名/密码:在鉴权请求中传递用户名/密码。
摘要认证:在鉴权请求中传递用户名/密码的摘要。
Params 配置
以 “?key=value” 的形式附加到请求 URL 的参数。
Headers 配置
请求表头中包含的键/值对。
Body
选择 上传文件 作为请求方法,或选择 POST/PUT 作为请求方法且选择 Body 作为请求数据类型时,可以将需要提交的数据放在 Body 中。该数据将会输出到 msg 中。数据类型不受限制,通常为 JSON 格式。
选择 上传文件 作为请求方法时,如果此字段为空,文件的内容将显示在输出 msg 中。
Form 配置
选择 POST/PUT/DELETE 作为请求方法且选择 Form 作为请求 Body 类型时,可以添加 form 数据中包含的键/值对。
保持 Cookie
存储用于会话管理的 cookie 信息。
描述
该节点的描述。
使用限制¶
下载文件的最大文件大小:100M
由于 HTTP 服务器并非 EnOS 管理,EnOS 不保证每次连接都能成功,连接问题可能是由于服务器停机或其他 EnOS 无法控制的因素造成。
示例¶
输入示例¶
如果请求特定位置天气信息的某个 HTTP Client 节点具有以下配置:
字段 |
值 |
---|---|
名称 |
HTTP Client |
请求 |
GET |
URL |
|
超时 |
无 |
鉴权 |
匿名 |
Params |
zip: 95050 |
表头 |
无 |
则相当于发出如下请求:
输出示例¶
根据上述配置,返回所请求天气信息的输出如下所述:
{
"MetaData":{
"CamelHttpResponseCode": "200",
"CamelHttpQuery": "",
"CamelHttpResponseText": "OK"
},
"Body":{
"coord":{
"lon":-121.95,
"lat":37.35
},
"weather":[
{
"id":721,
"main":"Haze",
"description":"haze",
"icon":"50n"
}
],
"base":"stations",
"main":{
"temp":59.88,
"feels_like":59.61,
"temp_min":59,
"temp_max":61,
"pressure":1015,
"humidity":77
},
"visibility":3219,
"wind":{
"speed":1.95,
"deg":310
},
"clouds":{
"all":90
},
"dt":1600071865,
"sys":{
"type":1,
"id":5845,
"country":"US",
"sunrise":1600091374,
"sunset":1600136217
},
"timezone":-25200,
"id":0,
"name":"Santa Clara",
"cod":200
}
}