HTTP请求 (http request)
发送HTTP请求并返回响应。
输入
包含请求信息的消息对象。
输出
包含HTTP响应的消息对象。
详细说明
HTTP请求节点可以发送HTTP请求到指定的URL并返回响应。
配置选项
- 方法: HTTP方法(GET、POST、PUT、DELETE等)
- URL: 请求URL(可从msg.url获取)
- 载荷: 请求体发送方式
- 忽略
- 追加到查询字符串参数
- 发送为请求体
- 返回: 响应格式
- UTF-8字符串
- 二进制buffer
- 解析的JSON对象
- 用户代理: 自定义User-Agent
- 超时: 请求超时时间(秒)
输入消息格式
javascript
msg = {
url: "https://api.example.com/data",
method: "POST", // 可选,覆盖配置
headers: { // 可选,请求头
"Content-Type": "application/json",
"Authorization": "Bearer token"
},
payload: { // 请求体
name: "test",
value: 123
},
cookies: { // 可选,Cookie
sessionId: "abc123"
}
}
输出消息格式
javascript
msg = {
payload: "响应内容", // 响应体
statusCode: 200, // HTTP状态码
headers: { // 响应头
"content-type": "application/json",
"content-length": "123"
},
responseUrl: "https://api.example.com/data",
responseCookies: { // 响应Cookie
sessionId: "def456"
}
}
示例
GET请求:
javascript
// 输入
msg = {
url: "https://api.weather.com/current?city=Beijing"
}
// 输出
msg = {
payload: {
temperature: 25,
humidity: 60,
weather: "sunny"
},
statusCode: 200,
headers: {...}
}
POST请求:
javascript
// 输入
msg = {
url: "https://api.example.com/users",
method: "POST",
headers: {
"Content-Type": "application/json"
},
payload: {
name: "张三",
email: "zhangsan@example.com"
}
}
// 输出
msg = {
payload: {
id: 123,
name: "张三",
email: "zhangsan@example.com"
},
statusCode: 201,
headers: {...}
}
错误处理:
javascript
// 网络错误或超时
msg = {
payload: "Error: connect ECONNREFUSED",
statusCode: undefined,
error: true
}
// HTTP错误状态
msg = {
payload: "Not Found",
statusCode: 404,
headers: {...}
}
应用场景
- API调用和集成
- 数据获取和提交
- Web服务交互
- 第三方系统集成
注意事项
- 设置合适的超时时间
- 处理网络错误和HTTP错误
- 注意请求频率限制
- 保护敏感信息(如API密钥)