HTTP Client


HTTP Client 节点建立一个可调用 API 的客户端,向 HTTP 服务器发出请求。

节点类型

External。

输入和输出能力

该节点具有 1 个入口点和 1 个出口点。输入和输出可以是任何格式。


正文会自动输出到 msg,而表头和属性信息会存储在 metadata,可以使用 ${metadata.key} 进行查询,其中 key 对应于表头/属性的 key。

节点属性

../../_images/http_client.png


名称

该节点的名称。


请求

该节点向服务器发出请求时所用的方法。支持的请求方法有 GETPOSTPUTDELETE上传文件下载文件


上传文件/下载文件 是一种建立在 GET/POST 基础上的请求方法。上传文件没有大小限制,下载文件的最大文件大小为 100M。


URL

HTTP 服务器的 URL。


选择上传文件作为请求方法时,如果填写的是 HTTP Server 节点中提供的 HTTP 服务器的 URL,可以在另一个流中使用 HTTP Server 节点查看文件是否上传成功。如果填写的是 EnOS 外部 HTTP 服务器的 URL,则需要通过所连接的服务器查看文件是否上传成功。


请求 Body 类型

选择 POSTPUTDELETE 作为请求方法时,需要选择请求数据的类型。支持的类型有 BodyForm 两种。


文件路径

选择 下载文件 作为请求方法时,需要填写保存文件的路径,以正斜杠开头,例如 /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 https://api.openweathermap.org/data/2.5/weather
超时
鉴权 匿名
Params zip: 95050
units: imperial
appid: 6d2d46f8ef16aad452df394b00e8ec45
表头


则相当于发出如下请求:

GET https://api.openweathermap.org/data/2.5/weather?zip=95050&units=imperial&appid=6d2d46f8ef16aad452df394b00e8ec45

输出示例

根据上述配置,返回所请求天气信息的输出如下所述:

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