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
  }
}