HTTP クライアント
HTTP クライアント プラグインを使えば、GoLand コードエディターで HTTP リクエストを直接作成、編集、実行できます。

HTTP リクエストを作成して実行する場合の主なユースケースは 2 つあります:
RESTful Web サービスを開発していて、それが期待どおりに機能し、仕様に準拠してアクセス可能であり、正しく応答することを確認したい場合。
RESTful Web サービスに対応するアプリケーションを開発している場合。 この場合、開発を開始する前にサービスへのアクセスと必要な入力データを調査すると役立ちます。 開発中に、アプリケーションの外部からこの Web サービスを呼び出すこともできます。 これは、コード内で論理エラーが検出されないにもかかわらず、アプリケーションで予期しない出力が発生し、Web サービスとの対話がボトルネックであると疑われる場合に、エラーを特定できます。
HTTP リクエストは .http および .rest ファイルに保存され、 アイコンでマークされます。
HTTP ファイルのサポートには以下の機能が含まれます:
コード補完は、 OpenAPI で定義されたホスト、メソッドタイプ、ヘッダーフィールド、およびエンドポイントに対応しています。
リクエスト、そのパーツ、レスポンスハンドラースクリプト向けの コードの折りたたみ
整形リクエストを、ご自身の HTTP リクエスト コードスタイルに合わせられます。
リクエストヘッダーフィールドとドキュメントタグの インラインドキュメント
HTTP リクエストファイルの 構造を見る
要求メッセージ本体内の Web 言語での言語インジェクション
必要に応じて、始める前に HTTP プロキシ ページの 設定 ダイアログ (Ctrl+Alt+S) でプロキシ設定を構成してください。
HTTP リクエストファイルを作成する
スクラッチファイルまたは HTTP リクエスト タイプの物理ファイルから HTTP リクエストを処理できます。 各ファイルには複数の要求を含めることができ、必要な数のファイルを作成できます。
スクラッチファイルは開発中の HTTP リクエストテストに使用できます。 スクラッチファイルはプロジェクト内に保存されず、GoLand で変更やリクエスト情報の追加が可能です。 HTTP リクエストをスクラッチファイルから実行すると、レスポンス出力ファイルへのリンクがリクエスト下と リクエスト履歴ファイル上部に追加されます。
HTTP リクエストスクラッチファイルを作成する
Ctrl+Alt+Shift+Insert を押して HTTP リクエスト を選択します。
物理ファイルは、HTTP リクエストの文書化、テスト、検証に使用できます。 物理ファイルはプロジェクト内に保存され、GoLand はそれらを変更しません。 物理ファイルから HTTP リクエストが実行された場合、このファイルは変更されません。 実行されたリクエストに関する情報とレスポンス出力ファイルへのリンクは、 リクエスト履歴ファイルの先頭に追加されます。
物理 HTTP リクエストファイルを作成する
ファイル メニューで 新規 をポイントし、 HTTP リクエスト をクリックします。
HTTP リクエストを移動する
F6 リファクタリング 移動を使用して、HTTP リクエストをスクラッチから物理ファイルに移動したり、物理ファイル間で移動したりできます。
エディターで移動したいリクエストにキャレットを合わせて、次のいずれかを実行します:
メインメニューまたはコンテキストメニューから、 を選択します。
Alt+Enter を押して HTTP リクエストの移動 インテンションアクションを選択します。
F6 を押す。
開いた HTTP リクエストの移動 ダイアログで、次の手順を実行します。
パス フィールドでリストから既存の .http ファイルを選ぶか、
をクリックしてファイルを探します。
ファイルへのフルパスを手動で入力することもできます。 存在しないファイルの名前を指定すると、指定した名前の新しいファイルが自動的に作成されます。
要求 リストで、移動するリクエストの横にあるチェックボックスを選択してください。
HTTP リクエストを作成する
GoLand は エディター内 HTTP リクエストフォーマットを使用し、HTTP リクエストの作成・実行・情報保管を簡単にできます。 作成した HTTP リクエストファイルに次の一般的な構文で直接記述できます:
### セパレーターの後に、 # または // で始まるコメントを入力できます。
HTTP リクエストの作成を高速化するには、次のことができます:
をクリックしてください。 リクエストファイルがエディターで開かれると、開かれたファイルにリクエストテンプレートが追加されます。 それ以外の場合は、新しい .http スクラッチファイルが作成されます。
リクエストのエディターパネルの上部にある
をクリックします。 ポップアップメニューで追加するリクエストタイプを選択してください。

または、 ライブテンプレートをご利用ください。 エディターで Ctrl+J を押すと、利用可能なテンプレート一覧が表示されます。 例えば、 gtr は単純な GET リクエストに展開され、 mptr は multipart/form-data POST リクエストに展開されます。

カスタム HTTP メソッドを作成する
Web サービスでカスタムの HTTP メソッドが必要な場合は、それらを GoLand に追加して HTTP リクエストで利用できます。
.http ファイルで、カスタムメソッドを大文字で入力します。
この方法が不明としてハイライトされたら、 Alt+Enter (コンテキストアクションの表示) を押して カスタム HTTP メソッドを追加 を選択します。

これで GoLand はそれを有効な HTTP メソッドとして認識します。 すべてのカスタム HTTP メソッド (および新しいメソッドの追加) は、IDE 設定 (Ctrl+Alt+S) の にあります。
HTTP/2
バージョン 2024.1 より、GoLand は HTTP リクエストでの HTTP/2 をサポートします。 URL 部分の後に HTTP バージョンを指定できます。例えば次のようにします:
バージョンが指定されていない場合、HTTP Client はセキュア接続では HTTP/2(HTTP/2 ネゴシエーション失敗時は HTTP/1.1 へフォールバック)、非セキュア接続では HTTP/1.1 を使用します。
HTTP バージョンを選択
リクエスト URL の後に空白を入れて Ctrl+Space を押すか、
HTTPの入力を開始します。補完リストから推奨値のいずれかを選択します:
HTTP/1.1 の使用を強制する
HTTP/1.1HTTP/2 の使用を有効にするには
HTTP/2を使用します。HTTP/2 (Prior Knowledge)は、HTTP/1.1 にアップグレードせずに HTTP/2 を使用して送信します。 サーバーが HTTP/2 接続を処理できることがわかっている場合に使用します。

HTTP クライアント機能の概要を把握するには、構成されたリクエストのいくつかの選択肢である HTTP リクエストコレクション を調べることができます。
HTTP リクエストコレクションからリクエストを開く
リクエストのエディターパネルの上部にある サンプル例 ショートカットリンクをクリックします。
ポップアップメニューで開きたい HTTP リクエストコレクションを選択します:

cURL リクエストを変換する
cURL(英語) リクエストを使用している場合は、cURL リクエストと エディターでの HTTP リクエスト形式を変換できます。
cURL を HTTP リクエストに変換する
cURL リクエストを HTTP リクエストファイルに貼り付けます。 GoLand はそれを HTTP リクエストフォーマットに変換し、元の cURL リクエストは後で参照できるようコメントアウトされたままになります。

または、HTTP リクエストエディターパネルの上部にある
をクリックして、 cURL を HTTP リクエストに変換 を選択します。
cURL を HTTP リクエストに変換 ダイアログで、変換する cURL リクエストを入力または貼り付けます。

次の cURL リクエスト例をご覧ください:
GoLand はそれを以下のように変換します:
コンバーターは以下の cURL オプションをサポートします:
オプション | 説明 |
|---|---|
使用するリクエストメソッド。 | |
リクエストに含めるリクエストヘッダー。 | |
要求とともに提供されるユーザーの資格情報、および使用する許可方法。 | |
POST リクエストで送信されるデータ。 | |
POST 要求で送信される マルチパート / フォームデータメッセージ。 | |
取得する URL(主に設定ファイルで URL を指定するときに使用されます)。 | |
HTTP レスポンスヘッダーを出力に含めるかどうかを定義します。 | |
詳細動作モードを有効にします。 | |
要求されたページが別の場所に移動された場合に要求を再送信することを可能にします。 |
HTTP リクエストを cURL に変換する
cURL 形式に変換する HTTP リクエストにキャレットを置きます。
Alt+Enter を押して cURL に変換してクリップボードにコピー を選択します。
または、HTTP リクエストエディターパネルの上部にある 変換 ショートカットリンクをクリックして、 キャレットの HTTP リクエストを cURL に変換してコピー を選択することもできます。
これにより HTTP リクエストを元に cURL リクエストを生成し、クリップボードにコピーします。
Postman のコレクションと環境をインポートする
Postman コレクションは、関連する HTTP リクエストをグループ化する方法です。 Postman では、コレクションと変数を JSON 形式でエクスポートできます。 HTTP クライアントを使うと、そのようなファイルを GoLand にインポートし、対応する .http や環境ファイルに変換できます。
Postman コレクションを HTTP クライアントにインポートする
Postman からコレクションをエクスポートします(英語)。 GoLand で使用したい場合は、環境ファイルをエクスポートすることもできます。
次のいずれかの方法でファイルを GoLand にインポートします:
エクスポートされたファイルがプロジェクト内にある場合は、それを右クリックして Collection を .http ファイルに変換 を選択します。
任意の .http ファイルを開き、ツールバーの
をクリックして、 Postman コレクション を選択します。
Ctrl+Shift+A を押し、
Postman コレクションファイルからのインポートの入力を開始し、対応するアクションを選択します。
環境ファイルもインポートする場合は、 環境をアタッチ を選択してファイルを指定します。 HTTP クライアント環境形式に変換され、指定された .http ファイルに対してこの環境が選択されます。
表示されるウィンドウで、「変換 」をクリックします。

コンテキストアクションを使用してリクエストを生成する
コード文字列リテラルまたは JSON、YAML、TOML、プロパティファイルに http または https で始まる URL がある場合は、HTTP リクエストをすばやく生成できます。
URL をクリックして、 Alt+Enter を押します。
開いたコンテキストメニューで、 HTTP クライアントでリクエストを生成する をクリックします。

これにより、 generated-requests.http スクラッチファイル内の指定された URL への新しい GETHTTP リクエストが作成されます。
OpenAPI 仕様からリクエストを作成する
OpenAPI 仕様ファイルを使用する場合、指定したエンドポイントへの HTTP リクエストを作成できます。
エンドポイントへの HTTP リクエストを作成する
OpenAPI 仕様ファイルで、エンドポイント定義の横にあるエディターのガターで
をクリックします。
または、 を開き、エンドポイントを右クリックして、 HTTP クライアントでリクエストを生成する を選択します。
GoLand は新しい HTTP リクエストを作成し、 generated-requests.http スクラッチファイルに保存します。
リクエストをエンドポイントにすぐに送信し、保存したくない場合は、 エンドポイント ツールウィンドウの HTTP クライアント タブを使用できます。
GoLand は、利用可能な OpenAPI 仕様に基づき、リクエスト URL とリクエスト本文(JSON フォーマット)に対して補完を提供します。 これはローカルだけでなくリモート仕様にも適用されます(補完を有効化するには、 IDE 設定に追加してください)。

エンドポイントとその使用箇所の名前を変更する
Rename リファクタリングを使うと、定義したエンドポイント名と HTTP リクエストでの使用も同時に変更できます。
以下のいずれかを行います:
OpenAPI 仕様ファイルで、名前を変更するエンドポイントの定義にキャレットを置きます。
HTTP リクエストファイルで、名前を変更する URL パスセグメントにキャレットを置きます。
メインメニューまたはコンテキストメニューから を選択するか、 Shift+F6 を押します。
開いた 名前変更 ダイアログで、新しいエンドポイントの名前を指定します。
プレビューと変更の適用
GoLand はエンドポイントおよびその使用箇所の名前を変更します。
応答ハンドラーと事前要求スクリプトを使用する
応答ハンドラースクリプトを使用すると、受信した HTTP レスポンスにプログラムで対応できます。 これらのスクリプトを使用すると、受信したデータを自動的に処理し、指定した条件に対して検証することができます。 応答ハンドラースクリプトは、HTTP リクエストファイル内の要求の一部として提供され、応答を受信するとすぐに実行されます。 応答処理例を見るには、 認証を含むリクエスト または テストとスクリプトによるリクエスト の リクエストコレクションを開きます。
リクエスト前スクリプトを使用すると、 HTTP リクエストで使用される変数を設定できます。
応答ハンドラースクリプトを挿入する
応答ハンドラースクリプトは、その場または外部ファイル参照でリクエストへ挿入できます。
その場でスクリプトを挿入するには、その前に
戻り値のラップダイアログを付けて{% %}で囲みます。GET host/api/test > {% // Response Handler Script ... %}外部ファイルからスクリプトを挿入するには、
戻り値のラップダイアログを先頭に追加します。GET host/api/test > scripts/my-script.js
応答ハンドラースクリプトからの出力 (エラーまたは client.log からの出力) がある場合は、要求の実行時に サービス ツールウィンドウの レスポンスハンドラー タブに表示されます。
事前リクエストスクリプトを挿入する
プリリクエストスクリプトは、その場もしくは外部ファイルを参照してリクエストに挿入できます。
その場でスクリプトを挿入するには、その前に
<を付けて{% %}で囲みます。< {% request.variables.set("petName", "Bella") %} POST https://example.org/pets/{{petName}}外部ファイルからスクリプトを挿入するには、
<を先頭に追加します。< scripts/my-script.js POST https://example.org/pets/{{petName}}
リクエスト前スクリプトからの出力 (エラーまたは client.log からの出力) がある場合は、リクエストを実行すると、 サービス ツールウィンドウの プレリクエストハンドラー タブに表示されます。
JavaScript コードをインポートする
場合によっては、変数や関数などの特定の機能を外部ファイルから使用する必要がある場合があります。 このため、事前リクエストおよび応答ハンドラースクリプトで、通常の ES6 インポート機能を使用して、ローカル JavaScript ファイルで定義された変数と関数にアクセスできます。
必要な値を JavaScript ファイルからエクスポートします。 HTTP クライアントは、次の形式の
エクスポートステートメントをサポートします。export let name1, name2/*, … */; // also var export const name1 = 1, name2 = 2/*, … */; // also var, let export function functionName() { /* … */ } export { name1, /* …, */ nameN }; export { variable1 as name1, variable2 as name2, /* …, */ nameN }; export default expression; export default function functionName() { /* … */ } export default function () { /* … */ }必要な値を応答ハンドラーまたは事前要求スクリプトにインポートします。 HTTP クライアントは、次の形式の
インポートステートメントをサポートします。import defaultExport from "module-name"; import * as name from "module-name"; import { export1 } from "module-name"; import { export1 as alias1 } from "module-name"; import { export1, export2 } from "module-name"; import { export1, export2 as alias2, /* … */ } from "module-name"; import defaultExport, { export1, /* … */ } from "module-name"; import defaultExport, * as name from "module-name"; import "module-name"; // side effect importインポートステートメントを、現在の .http ファイルの先頭にある共通ブロック宣言={% ... %}の中に配置することで、そのファイル内のすべてのプリリクエストスクリプトとレスポンスハンドラーから JavaScript モジュールが使用できるようになります。例 logger.js :
export const logMessage = () => { console.log("Request executed"); };.http ファイルの例:
={% import { logMessage } from "logger" %} ### < {% logMessage(); %} GET https://examples.http-client.intellij.net/get > {% logMessage(); %}
レスポンスハンドラースクリプトと事前リクエストスクリプトは JavaScript ECMAScript 2023 で記述され、コーディング支援とドキュメントはバンドルされた HTTP 事前要求および応答ハンドラー ライブラリによって処理されます。 インプレーススクリプトの場合、この機能は自動的に有効になります。 外部スクリプトの場合は、手動で有効にする必要があります。
応答ハンドラーと事前要求スクリプトの JavaScript コーディング支援を有効にする
Ctrl+Shift+A (アクションの検索 )を押します。
JavaScript ライブラリの使用 と入力し、対応するアクションをクリックし、開いたコンテキストメニューで HTTP 事前要求および応答ハンドラー を選択します。
HTTP Response Handler ライブラリは、レスポンスハンドラースクリプトを作成するために使用される 2 つのオブジェクトを公開します。
clientオブジェクトはセッションメタデータを格納し、スクリプト内で編集可能です。clientの状態は GoLand を閉じるまで保持されます。client.globalにvariable_nameとして保存された各変数は、その後の HTTP リクエストで{{variable_name}}として利用できます。responseは受信したレスポンスに関する情報を保持しています: そのコンテンツタイプ、ステータス、レスポンスボディなど。
エディターで HTTP レスポンスハンドラーライブラリを開くには、ライブラリオブジェクトにキャレットを置き、 Ctrl+B を押します。
応答ハンドラースクリプトにはテストも含められ、HTTP クライアントをテストフレームワークとして利用可能です。 テストを作成するには client.test(testName, function) メソッドを呼び出してください。 テスト内で client.assert(condition, message) メソッドを呼び出して条件を検証できます。例えば:
構造ツールウィンドウを使用して .http ファイル内を移動する
.http ファイルに複数のリクエストがある場合、 構造 ツールウィンドウは、ファイルをすばやくプレビューしてファイル内を移動できます。 ツールウィンドウには、ヘッダー、リクエスト本文、事前リクエストスクリプト、応答ハンドラースクリプトなどのリクエスト部分も表示されます。
構造 ツールウィンドウを開きます: 。
または、 Alt+7 を押してください。
構造 ツールウィンドウで、HTTP メソッドまたはリクエスト名、あるいはリクエストの一部をクリックします。

右クリックして を選択することで、そこからリクエストを送信することもできます。
HTTP リクエストを実行する
単一のリクエストを実行する
独自の Web サービスをテストする場合は、Web サービスがデプロイされ、実行されていることを確認してください。
環境を定義している場合は、リクエストのエディターパネルの上部にある 実行方法を選択 リストで環境を選択します。
ガターで、リクエストの横にある
をクリックします。
複数のリクエストを順番に実行する
.http ファイルからのすべてのリクエストを一度に実行できます。 これは、サーバーから特定のデータをリクエストし、それを client.global 変数として保存し、そのデータを含む後続のリクエストを送信するなどの複雑なシナリオに役立ちます。
.http ファイルを開きます。
エディターパネルの上部にある
(ファイル内のすべてのリクエストを実行) をクリックします。
リクエスト実行時、GoLand はそのリクエスト専用の一時 HTTP リクエスト実行 / デバッグ構成を自動生成します。 必要に応じて 永続的な実行 / デバッグ構成として保存するを使用できます。
ブラウザーでリクエストを開く
設定 ダイアログ(Ctrl+Alt+S )の ウェブブラウザーとプレビュー ページで指定されたブラウザーで HTTP リクエストを開くことができます。
Alt+Enter を押して Web ブラウザーで開く インテンションアクションを選択します。
HTTP リクエストの実行 / デバッグ構成を操作する
エディターから HTTP リクエストを実行すると、GoLand でリクエストパラメーターを反映した一時実行 / デバッグ構成が自動生成されます。 一時的な実行 / デバッグ構成は、永続的な実行 / デバッグ構成と同じように機能します。 実行 / デバッグ構成ダイアログを使用して設定を変更し、オプションで永続的に保存できます。
HTTP リクエストの実行 / デバッグ構成を変更する
以下のいずれかを行います:
エディターでリクエストを右クリックし、コンテキストメニューで 実行構成を変更… を選択します。
または、メインメニューの に移動し、 HTTP リクエスト リストから必要な実行 / デバッグ構成を選択します。
必要に応じて構成パラメーターを変更します。
環境 リストで、リクエストで使用される環境変数のセットを定義する 環境を選択します。
ファイル フィールドに、 HTTP リクエストファイルへのパスを指定します。 パスを手動で入力し、入力時にパス補完 Ctrl+Space を使用するか、
をクリックして、表示されるダイアログで必要なフォルダーを選択できます。
要求ファイルに複数の要求が含まれている場合は、 リクエスト リストで、実行する要求の名前を選択します。
一時的な HTTP リクエストの実行 / デバッグ構成を保存する
以下のいずれかを行います:
実行 / デバッグ構成 セレクターで、 を選択します。
実行 / デバッグ構成 ダイアログで、構成を選択し、
をクリックします。
実行 / デバッグ構成を使用して要求を実行する
以下のいずれかを行います:
実行 / デバッグ構成 セレクターで、目的の実行構成を選択します。 次に、メインツールバーの
をクリックするか、 Shift+F10 を押します。
Alt+Shift+F10 を押し、リストから希望の実行構成を選択して、 Enter を押します。
他の .http ファイルから HTTP リクエストをインポートする
GoLand を使えば他の .http ファイルから HTTP リクエストをインポートできます。 次のことが可能です。
サンプルをクリックし、 Include を含むリクエスト を選択すると、IDE でこの機能の構文例が表示されます。
すべてのリクエストを別の .http ファイルから実行する
.http ファイルで、
実行に続けて、含める別の .http の名前を入力します。 ファイルが同じディレクトリにある場合は、その名前を入力します。 そうでない場合は、パスを指定します。 例:run ./myFolder/get-requests.httpこのファイルからのすべてのリクエストを送信するには、
実行の横にあるをクリックします。
別の .http ファイルから特定のリクエストを実行する
.http ファイルの先頭に、
インポートと入力し、その後に必要なリクエストを含む別の .http の名前を入力します。実行と入力し、実行するリクエストの名前を指定します。Ctrl+Space を押すと、インポートされたファイルで利用可能なすべてのリクエストを表示できます。

インポートされた .http ファイルからの変数を上書きする
インポートされた .http ファイルに変数が含まれている場合は、特定の実行に対してその値を指定または変更できます。
実行と入力し、 .http ファイルまたはリクエストの名前を指定します。リクエストまたはファイルの名前の後に、
(@variable=value)形式で変数を入力します。 複数の変数を指定するには、コンマで区切ります。 例:import new-requests.http run #GET request with one var (@host=example.com) run #GET request with two vars (@host=example.com, @user=userName)
Web サービスからの応答を表示する
HTTP リクエストを実行すると、GoLand は応答を .idea/httpRequests/ ディレクトリ内の別ファイルに自動的に保存します。 最近保存された 50 件の応答を表示し、 要求履歴を使用して対応するファイルに移動することができます。 リクエストがスクラッチファイルから実行された場合、そのレスポンス出力へのリンクも元のリクエストに追加されます。

受け取った応答を見る
レスポンスが届くと自動的に開く サービスツールウィンドウへ切り替えてください。
デフォルトで、サーバー応答はリクエストヘッダーの content-typeフィールドで指定されたフォーマットで表示されます。 レスポンスを別のフォーマットに変換するには、
をクリックして、 テキスト、 JSON、 XML または HTML を選択します。

レスポンスにバイナリファイルが含まれている場合、このファイルも .idea/httpRequests/ ディレクトリに保存されます。 レスポンスがイメージ、PDF、HTML ファイルの場合は、IDE 内で直接プレビューできます。
サービス ツールウィンドウでイメージをプレビューします。

サービス ツールウィンドウで PDF ファイルをプレビューします。 サービス ツールウィンドウで PDF プレビューの表示を無効にするには、 をクリックして PDF プレビューのインライン化を有効化 オプションをクリアします。

応答が HTML ファイルの場合は、 プレビューの表示 をクリックして、JCEF ベースのブラウザーを使用してエディタータブでプレビューできます。

レスポンスハンドラースクリプトがある場合、このスクリプトの一部として実行されたテストの結果は、 サービス ツールウィンドウの テスト タブに表示されます。 各テストをクリックすると、対応するレスポンスハンドラースクリプト内のテストソースコードに簡単に移動できます。

イベントストリームをサブスクライブすると、GoLand はイベントを サービス ツールウィンドウに表示します。 ここでは、 をクリックして、クライアント / サーバー接続のステータスを表示し、接続を終了することもできます。 コンテンツタイプ(
text/event-stream または application/x-ndjson のいずれか)に応じて、応答はプレーンテキストまたは改行で区切られた JSON としてフォーマットされます。 イベントストリームの各行を処理する応答ハンドラースクリプトを作成できます。

ストリームイベントのファイルへの リダイレクトは現在サポートされていません。
エディターで応答ファイルを開く
開きたいレスポンスのリンクにキャレットを置いてください。
次のいずれかを実行します:
メインメニューで へ移動します。
Ctrl+B または F4 を押します。
サービス ツールウィンドウまたはエディター (スクラッチファイルの場合) で、応答行のリンクを Ctrl+Click します。
JSONPath を使用して JSON レスポンスからデータを抽出する
HTTP クライアントは JSONPath クエリをサポートしており、受信した JSON ドキュメントからデータを解析して抽出することができます。 これを行うには、 応答ハンドラースクリプトで次の関数を使用します。
この関数をすばやく挿入するには、 jsonPath ライブテンプレートを使用します。
リクエスト後、応答ハンドラースクリプト部分で、
> jsonPathと入力し始めます。Enter を押してライブテンプレートを展開し、JSONPath 式を補完します。
例: この式は、
slideshowオブジェクトの一部であるslides配列内の最初の要素のタイトルフィールドの値を取得して出力します。GET https://examples.http-client.intellij.net/json > {% client.log(jsonPath(response.body, "$.slideshow.slides[0].title",)) %}取得した値を サービス ツールウィンドウの レスポンスハンドラー タブでプレビューします。
XPath を使用して XML 応答からデータを抽出する
HTTP Client は XPath 式をサポートしており、受信した XML ドキュメントからデータを解析・抽出できます。
応答ハンドラースクリプトでは、次の関数を使用します。
xpath(XMLToParse, XPathExpression)XMLToParseに解析する XML コンテンツ (たとえば、response.body) を入力し、XPathExpressionに XPath 式を入力します。
例:
スクラッチファイル内のレスポンスを比較する
スクラッチファイルからリクエストを実行すると、元のリクエストの下にレスポンス出力ファイルのリンクが追加されます。
以下のいずれかを行います:
応答ファイルへのリンクにキャレットを置きます。 Alt+Enter を押して <レスポンス名> と比較; インテンションアクションを選んでください。
ガターの
をクリックしてリストから <レスポンス名> と比較; を選択します:

リクエスト履歴の応答を比較する
物理ファイルからリクエストが実行されると、応答出力へのリンクが リクエストの履歴に追加されます。
応答ファイルへのリンクにキャレットを置きます。 メインメニューで に移動するか、 Ctrl+B または F4 を押して、このファイルを新しいエディタータブで開きます。
メインメニューで に移動するか、 Ctrl+D を押します。 GoLand は httpRequests フォルダーからレスポンスファイルを開くよう促します。
現在のファイルと比較する応答ファイルを選択し、 開く をクリックします。
2 つの応答ファイルが 差分ビューアーで開かれ、それらの内容を比較できます。

リクエスト履歴を表示
GoLand は最近実行した 50 件のリクエストを http-requests-log.http ファイルに自動保存し、これはプロジェクト内の .idea/httpRequests/ ディレクトリに格納されます。 リクエスト履歴を使えば特定の応答に素早く移動したり リクエスト再発行もできます。 リクエスト履歴から再発行すると、その実行情報とレスポンス出力へのリンクが履歴ファイル上部に追加されます。
リクエスト履歴を開く
リクエストのエディターパネルの上部にある
をクリックします。
メインメニューから を選択します。
出力をカスタムファイルまたはディレクトリにリダイレクトする
HTTP クライアントは、出力をカスタムファイルまたはディレクトリにリダイレクトできます。 強制リダイレクトとソフトリダイレクトの 2 つの演算子をサポートしています。
>>オペレーターは常に新しいファイルを作成し、要求されたファイル名がすでに存在する場合は、ファイル名に-n接尾辞を追加します。>>!オペレーターは、ファイルがすでに存在する場合、ファイルを書き換えます。
クッキーを管理する
応答によって受信された Cookie は、 .idea/httpRequests/ ディレクトリの専用 http-client.cookies ファイルに自動的に保存されます。 保存できるクッキーの数は 300 に制限されています。 有効期限に達していない限り、Cookie の 名前と 値は、Cookie に指定された ドメインと パスに一致する URL への後続の各要求に自動的に含まれます。
クッキーを無期限にしたい場合は、 日付 パラメーターとして -1 を入力します。 例:

HTTP リクエストでカスタムクッキーを設定する際は Cookie ヘッダーを利用できます。 クッキーはセミコロン区切りの name=value ペアリストとして入力します:
gRPC リクエスト
HTTP クライアントは gRPC リクエストをサポートしています。 HTTP クライアントがリクエストを gRPC リクエストとして処理するには、 GRPC キーワードでリクエストを開始します。
.proto ファイルに基づき、GoLand は gRPC の補完を提供します:すべての既知の gRPC サービス、特定サーバーのユニタリおよびサーバーストリーミングメソッド、リクエスト本文で許容されるメッセージのフィールド。 プロジェクトに .proto ファイルがない場合でも、サーバーがアクセス可能なサービスに関する情報を HTTP クライアントに提供する gRPC リフレクション(英語)をサポートしていれば、コード補完を使用できます。

proto ファイルから gRPC リクエストを生成する
proto ファイルで、RPC メソッドの近くにある
HTTP クライアントでリクエストを生成する をクリックします。

エンドポイントツールウィンドウから gRPC リクエストを生成する
HTTP リクエストと同様に、 エンドポイント ツールウィンドウを使用して gRPC リクエストを生成することもできます。
エンドポイント ツールウィンドウを開きます: 。 プロジェクトで定義されている場合は、gRPC エンドポイントが表示されます。
エンドポイントを選択します。 これにより、 HTTP クライアント タブにサンプルリクエストが生成されます。
リクエストを完了し、 リクエストの送信 をクリックします。 デフォルトのアドレスとポートを独自の値に置き換える必要がある場合があります。 リクエストボディには、proto ファイルのデータ構造に基づいてコード補完を使用します。
HTTP クライアント タブの下部で応答をプレビューします。

gRPC メタデータを送信する
GRPCリクエストに、次の構文を使用して gRPC メタデータを入力します:Metadata-key: Value例:
GRPC localhost:8080 X-Myhostname: Example.org
安全な gRPC を使用する
サーバーサイド TLS で保護された接続を開始できます。
アドレスの前に
grpcsを入力してください。例:GRPC grpcs://ijhttp-examples.jetbrains.com/hello.HelloService/SayHello
PROTO ファイルから Go コードに移動する
Go コードからのメッセージ、サービス、メソッドの宣言と、PROTO ファイルからのそれらの Go 実装を移動してアクセスできます。
メッセージ、サービス、メソッド、それらの実装の宣言の横にある 実装に移動 アイコンを押します。
Websocket リクエスト
HTTP クライアントは WebSocket リクエストをサポートします。 HTTP クライアントがリクエストを WebSocket リクエストとして処理するには、 WEBSOCKET キーワードで開始し、その後にサーバーアドレスを続けます。 リクエストの構造は次のとおりです。
WebSocket リクエストの作成を高速化するには、次のことができます:
.http ファイルのエディターパネルの上部にある
をクリックし、 WebSocket リクエスト を選択します。
.http ファイルで、
wsrと入力し、 Enter を押して WebSocket ライブテンプレートを適用します。
複数のメッセージを送信する
===セパレーターを使用して、複数のメッセージを送信します。{ "message": "First message sent on connection" } === // message separator { "message": "Second message" } === { "message": "Third message" }
サーバーの応答後にメッセージを送信する
メッセージの前に、
=== wait-for-serverと入力します。これにより、HTTP クライアントはメッセージを送信する前にサーバーの応答を待機します。
=== wait-for-server行を繰り返すことにより、複数の応答を待つことができます。 例: 次のメッセージは、3 つのサーバー応答の後に送信されます。=== wait-for-server === wait-for-server === wait-for-server { "message": "This messages is sent after 3 server responses" }
インタラクティブにメッセージを送信する
接続を開始すると、 サービス ツールウィンドウから直接サーバーと対話できます。 新しいメッセージごとにメッセージを送信したり、サーバーの応答を表示したりできます。
サービス ツールウィンドウで、開いている接続を選択します。
ウィンドウの下部の WebSocket に送信されるメッセージ に、メッセージの内容を入力します。
その右側で、メッセージ形式(プレーンテキスト、JSON、XML、HTML)を選択します。
Ctrl+Enter を押してリクエストを送信します。
ウィンドウ上部にサーバー応答が表示されます。

GraphQL
GoLand は HTTP リクエスト本文で GraphQL 操作送信をサポートしています。 HTTP または WebSocket を介して送信できます。
GraphQL クエリを使用して HTTP リクエストを作成する
.http ファイルに、
GRAPHQLキーワードに続けてサーバーアドレスを入力します。リクエストの本文で、GraphQL 操作(クエリ、ミューテーション、サブスクリプション)を作成します。例:
### HTTP request with GraphQL query GRAPHQL http://localhost:8080/graphql query { toDos { title, completed, author { username } } }
GraphQL クエリを含んだ HTTP リクエストの作成を高速化するには、次のことができます:
.http ファイルのエディターパネルの上部にある
をクリックし、 GraphQL クエリリクエスト を選択します。
.http ファイルで、
gqlrと入力し、 Enter を押して GraphQL ライブテンプレートを適用します。
GraphQL 変数を使用する
HTTP リクエストの本文では、クエリ文字列とは別に動的データを渡す場合 GraphQL 変数を利用できます。
クエリ部の後に JSON 変数辞書を入力します:
query ($name: String!, $capital: String!) { country(name: $name, capital: $capital) { name capital } } { "name": "France", "capital": "Paris" }GraphQL 変数値として HTTP クライアント環境変数 も使用できます。 例えばこの JSON で
"{{Author}}"は環境変数であり、実行時の値はリクエスト送信時に選択した環境によって決まります:{ "author": "{{Author}}" }
プロキシ設定の構成
設定 ダイアログ(Ctrl+Alt+S )で、 外観 & 振る舞い の システム設定 を選択し、次に HTTP プロキシ を選択します。
開いた HTTP プロキシダイアログで 手動プロキシ構成 を選択し、以下を指定します:
ホスト名 および ポート番号 フィールドにプロキシのホスト名とポート番号を入力します。
認証を有効にするには、 プロキシ認証 チェックボックスを選択して、対応するフィールドにユーザー名とパスワードを入力します。
クライアント SSL/TLS 証明書を設定する
HTTP サーバーが安全な通信のために SSL/TLS 認証を必要とする場合、HTTPS 要求を送信する前にクライアント証明書を指定する必要がある場合があります。 HTTP クライアントでは、 プライベート環境ファイルを使用してクライアント証明書をセットアップできます。
証明書へのパスを指定
.http ファイルの 実行方法を選択 リストで、 環境を Private ファイルに追加… を選択します。
開いた http-client.private.env.json ファイルで、必要な環境に
SSLConfigurationオブジェクトを追加します。clientCertificateに、クライアント証明書へのパスを入力します。 証明書キーが別のファイルに保存されている場合は、そのパスをclientCertificateKeyに入力します。 例:{ "dev": { "MyVar": "SomeValue", "SSLConfiguration": { "clientCertificate": "cert.pem", "clientCertificateKey": "MyFolder/key.pem" } } }または、
clientCertificateやclientCertificateKeyをオブジェクトとして記述することで、パスに加えて証明書のフォーマットも指定できます。 例:{ "dev": { "SSLConfiguration": { "clientCertificate": { "path": "file.crt", "format": "PEM" }, "clientCertificateKey": { "path": "file.key", "format": "DER" } } } }
証明書のパスフレーズを設定する
クライアント証明書を生成する際にパスフレーズを使用した場合は、それを HTTP クライアントに指定する必要があります。
http-client.private.env.json ファイルで、
"hasCertificatePassphrase": trueをSSLConfigurationオブジェクトに追加します。例:{ "dev": { "SSLConfiguration": { "clientCertificate": "file.crt", "hasCertificatePassphrase": true } } }ガターの
をクリックするか、キャレットを
hasCertificatePassphraseに置いて Alt+Enter を押し、 ''{0}'' の値を設定する を選択します。開いたウィンドウで証明書のパスフレーズを入力してください。

パスフレーズを今すぐ入力したくない場合は、2 番目の手順を省略できます。 この場合、GoLand は HTTPS リクエスト実行時にパスフレーズの入力を求めます。
証明書の検証を無効にする
開発目的で、自己署名証明書または期限切れの証明書を持つホストがある場合があります。 このホストを信頼する場合は、その証明書の検証を無効にすることができます。
http-client.private.env.json ファイルで、
verifyHostCertificate": falseをSSLConfigurationオブジェクトに追加します。 例:{ "sslTest": { "SSLConfiguration": { "verifyHostCertificate": false } } }
この環境でリクエストを実行すると、GoLand はホスト証明書を検証しません。