---
title: "HTTPリクエスト"
description: "Connect to external APIs and web services"
icon: "globe"
---

HTTPリクエストノードは、ワークフローを外部APIやWebサービスに接続します。データの取得、Webhookの送信、ファイルのアップロード、または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>

## 設定

URL、ヘッダー、クエリパラメータ、リクエストボディ、認証など、HTTPリクエストのあらゆる側面を設定します。前のワークフローノードからの変数は、リクエスト設定のどこにでも動的に挿入できます。

### 変数置換

ワークフロー変数は二重中括弧を使用して参照します：`{{variable_name}}`。Difyは深いオブジェクトアクセスをサポートしているため、前のHTTPレスポンスから`{{api_response.data.items[0].id}}`のような入れ子の値を抽出できます。

### タイムアウト設定

HTTPリクエストには、ハングを防ぐための設定可能なタイムアウトがあります：
- **接続タイムアウト**：接続を確立するための最大時間（デフォルトはデプロイメントによって異なります）
- **読み取りタイムアウト**：レスポンスデータを読み取るための最大時間
- **書き込みタイムアウト**：リクエストデータを送信するための最大時間

タイムアウトは、ワークフローのパフォーマンスを維持し、リソースの枯渇を防ぐために強制されます。

### 認証

このノードは複数の認証タイプをサポートしています：

**認証なし**（`type: "no-auth"`） - 認証ヘッダーは追加されません

**APIキー**（`type: "api-key"`）には3つのサブタイプがあります：
- **Basic**（`type: "basic"`） - base64エンコーディングで加
- **Bearer**（`type: "bearer"`） - `Authorization: Bearer <token>`ヘッダーを追加
- **Custom**（`type: "custom"`） - 指定された名前と値でカスタムヘッダーを追加

### リクエストボディ

APIの要件に基づいて適切なボディタイプを選択します：

- **JSON**：構造化データ用
- **フォームデータ**：従来のWebフォーム用
- **バイナリ**：ファイルアップロード用
- **生テキスト**：カスタムコンテンツタイプ用

## ファイル検出

HTTPリクエストノードは、高度なロジックを使用してファイルレスポンスを自動的に検出します：

1. **Content-Disposition分析** - `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>

**リトライ設定**は、設定可能な間隔（最大5000ms）で失敗したリクエストを最大10回まで自動的にリトライします。これにより、一時的なネットワーク問題やサービスの利用不可を処理します。

<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`パラメータ）。これにより、外しながら、自己署名証明書を使用する内部サービスへの接続が可能になります。

<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呼び出しを連携させ、1つのリクエストのレスポンスを使用して後続のリクエストを設定します。