Skip to content

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密钥)

蜀ICP备2025139593号