Beta HTTP client

Open a .http or .rest file and click the green ▶ next to a request to send it. It uses the JDK’s built-in HTTP client, so there’s no external tool to install. The HTTP client is off by default; enable it in Settings → HTTP Client.

Writing requests

Separate requests with a ### line. A request is a method and URL followed by headers and an optional body:

### Get a user
GET https://api.example.com/users/42
Accept: application/json

### Create one
POST https://api.example.com/users
Content-Type: application/json

{ "name": "Ada" }

Variables and environments

Substitute {{var}} and file-local @var = value declarations, plus dynamic variables: {{$random.*}}, {{$datetime}} (with date math), {{$dotenv.X}}, and more. Define named environments in http-client.env.json alongside the file (with a $shared section for common values) and pick one in the tool window; the choice is remembered per workspace.

Chaining, bodies, and auth

The client is close to IntelliJ’s HTTP Client:

Running and the response

ActionCommandDefault key
Run the request at the carethttp.runRequest(gutter ▶)
Run every request in the filehttp.runFile(palette)
Select environmenthttp.selectEnvironment(palette)
Open the tool windowtool.httpM-0

The response shows in the HTTP Client tool window (M-0) with the status line, headers, timing, size, and a content-type-highlighted, pretty-printed body. It keeps an in-session history, and you can Copy as cURL, Import cURL from the clipboard (http.importCurl), open a response in its own editor tab (http.openResponseInTab), and save the response to a file.