```mdx
---
title: "HTTP请求"
description: "连接到外部API和Web服务"
icon: "globe"
---

HTTP请求节点将您的工作流连接到外部API和Web服务。使用它来获取数据、发送webhooks、上传文件或与接受HTTP请求的任何服务集成。

<Frame caption="HTTP请求节点配置">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/07c5e952eb4c9d6a32d0b7c2d855d4a5.png" alt="HTTP请求节点界面" />
</Frame>

## HTTP方法

该节点支持所有标准HTTP方法，用于不同类型的操作：

<Tabs>
  <Tab title="数据检索">
    **GET** 从服务器检索数据而不修改任何内容。用于获取用户档案、搜索数据库或获取当前状态。
    
    **HEAD** 获取响应头而不获取完整的响应体。用于检查资源是否存在或获取元数据。
  </Tab>
  
  <Tab title="数据提交">
    **POST** 向服务器发送数据，通常用于创建新资源。用于表单提交、文件上传或发送JSON负载。
    
    **PUT** 创建或完全替换资源。用于设置资源的整个状态。
    
    **PATCH** 对现有资源进行部分更新。用于只需修改特定字段的情况。
  </Tab>
  
  <Tab title="资源管理">
    **DELETE** 从服务器删除资源。用于删除文件、用户账户或任何应被移除的资源。
  </Tab>
</Tabs>

## 配置

配置HTTP请求的各个方面，包括URL、头、查询参数、请求体和认证。可以在请求配置中的任何地方动态插入来自先前工作流节点的变量。

### 变量替换

使用双花括号引用工作流变量：`{{variable_name}}`。Dify支持深层对象访问，因此您可以从先前的HTTP响应中提取嵌套值，如`{{api_response.data.items[0].id}}`。

### 超时配置

HTTP请求具有可配置的超时，以防止挂起：
- **连接超时**：建立连接的最长时间（默认值因部署而异）
- **读取超时**：读取响应数据的最长时间
- **写入超时**：发送请求数据的最长时间

强制执行超时以维护工作流性能并防止资源耗尽。

### 认证

该节点支持多种认证类型：

**无认证** (`type: "no-auth"`) - 不添加认证头

**API密钥** (`type: "api-key"`) 有三个子类型：
- **Basic** (`type: "basic"`) - 使用base64编码添加Basic认证头
- **Bearer** (`type: "bearer"`) - 添加`Authorization: Bearer <token>`头
- **Custom** (`type: "custom"`) - 添加具有指定名称和值的自定义头

### 请求体

根据您的API需求选择适当的主体类型：

- **JSON** 用于结构化数据
- **Form Data** 用于传统Web表单
- **Binary** 用于文件上传
- **Raw Text** 用于自定义内容类型

## 文件检测

HTTP请求节点使用复杂的逻辑自动检测文件响应：

1. **内容处置分析** - 检查`attachment`处置或文件名参数
2. **MIME类型评估** - 分析内容类型以区分文本和二进制
3. **内容采样** - 对于不明确的类型，采样前1024字节以检测文本模式

基于文本的响应（JSON、XML、HTML等）被视为常规数据，而二进制内容则成为文件变量。

## 文件操作

HTTP请求节点无缝处理文件上传和下载：

<Frame caption="文件上传配置示例">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/1f2e33cf7bed33096b5aee145006193d.png" alt="HTTP节点文件上传" />
</Frame>

**文件上传** 使用二进制请求体选项。从先前节点中选择文件变量，将文件发送到外部服务以进行文档存储、媒体处理或备份。

**文件下载** 在响应包含文件内容时自动处理。下载的文件作为文件变量可用于下游节点。

## 错误处理和重试

为依赖外部服务的生产工作流配置健壮的错误处理：

<Frame caption="HTTP重试配置">
  <img src="https://assets-docs.dify.ai/2024/12/2e7c6080c0875e31a074c2a9a4543797.png" alt="HTTP重试设置" />
</Frame>

**重试设置** 自动重试失败的请求最多10次，并具有可配置的间隔（最大5000毫秒）。这处理了临时网络问题或服务不可用的情况。

<Frame caption="HTTP错误处理选项">
  <img src="https://assets-docs.dify.ai/2024/12/91daa86d9770390ab2a41d6d0b6ed1e7.png" alt="HTTP错误处理" />
</Frame>

**错误处理** 定义HTTP请求失败时的替代工作流路径，确保即使外部API不可用，您的工作流也能继续执行。

## 响应处理

HTTP响应成为后续节点中的结构化变量，可单独访问：

- **响应体** - API返回的主要内容
- **状态码** - 用于条件逻辑的HTTP状态
- **头** - 作为键值对的响应元数据
- **文件** - API返回的任何文件内容
- **大小信息** - 以字节为单位的内容大小，并以可读格式显示（KB/MB）

### SSL验证

SSL证书验证可在每个节点上配置（`ssl_verify`参数）。这允许与自签名证书的内部服务连接，同时维护对外部API的安全性。

<Frame caption="动态API集成示例工作流">
  <img src="https://assets-docs.dify.ai/dify-enterprise-mintlify/en/guides/workflow/node/090975269f8998f906c5636dde8d9540.png" alt="客户反馈分类工作流" />
</Frame>

## 常见集成模式

**API数据获取** - 检索用户档案、产品信息或外部数据以丰富您的工作流处理。

**Webhook传递** - 发送通知、状态更新或处理结果到外部系统和服务。

**文件处理** - 上传文档以进行分析，下载资源以进行进一步处理，或与云存储服务集成。

**多步骤API工作流** - 将多个API调用链接在一起，使用一个请求的响应来配置后续请求。
```