A comprehensive Postman-like tool window for IntelliJ IDEA that lets you compose, organize, and execute HTTP requests. All requests are saved as standard IntelliJ HTTP Client (.http) files, making them portable, shareable, and version-controlled.
📦 Installation
From JetBrains Marketplace
Manual Installation
- Open IntelliJ IDEA
- Go to
File → Settings → Plugins - Search for "HTTP Client Plus"
- Click Install
🚀 Features
Core Request Building
- Request Builder: Method dropdown (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS), URL field with inline Send button
- Request Organization: Name field used as .http filename and request label, collection-based organization
- URL Parameters: Visual key-value editor that automatically appends to URL
- HTTP Headers: Key-value table for custom headers
- Request Body: Multiple content types with JSON beautification support
- Multipart Forms: Complete form-data builder with boundary control, text/file parts, and per-part content types
Authorization Support
- Multiple Auth Types: None, Basic, Bearer Token, Digest, Custom Header
- Basic Auth: Username/password with automatic Base64 encoding
- Bearer Token: Simple token input for OAuth/JWT
- Digest Auth: Username/password for digest authentication
- Custom Headers: Flexible authorization header configuration
Environment Management
- Environment Variables: Define and use variables across requests
- Public/Private Environments: Separate files for shared and sensitive data
- Environment Files:
http-client.env.json(public) andhttp-client.private.env.json(private) - Variable Substitution: Use
{{variable}}syntax in requests
Import & Export
- Postman Import: Import collections from Postman JSON files
- Curl Import: Paste curl commands to create requests
- Collection Organization: Automatic conversion to HTTP Client Plus format
Response Management
- Response Viewing: Built-in response viewer with syntax highlighting
- Response Saving: Automatic response file storage with timestamps
- Response History: Browse previous responses for each request
- Response Handler Scripts: Add custom JavaScript for response processing
Development Integration
- REST Controller Integration: Gutter icons in Spring REST controllers for quick request creation
- Automatic Request Detection: Parse Spring mapping annotations (@GetMapping, @PostMapping, etc.)
- IDE Integration: Seamless integration with IntelliJ's HTTP Client
File Management
- Saved Requests: Browse, search, and manage all saved requests
- Collection Organization: Group requests into logical collections
- File Operations: Rename, delete, duplicate requests
- Search & Filter: Find requests by name, method, or collection
- Drag & Drop: Reorganize requests between collections
Advanced Features
- Request Validation: Automatic validation and error checking
- Content-Type Detection: Smart content-type headers for JSON requests
- File Upload Support: Complete multipart file upload functionality
- Settings Configuration: Customizable storage locations and behavior
- Keyboard Shortcuts: Full keyboard navigation support
📋 Requirements
- IntelliJ IDEA 2024.2+ (Ultimate Edition)
- Built-in HTTP Client enabled (default)
- JDK 17+ for building from source
🎥 Demo Video
🛠️ Build and Run
bash
# Build the plugin
./gradlew build
# Run in development IDE
./gradlew runIde
🎯 Multi-Version Support
Build for specific IntelliJ versions using the ideLine property:
bash
# Default 2025.2 baseline
./gradlew clean build -x test
# 2025.1
./gradlew clean build -PideLine=251 -x test
# 2024.3
./gradlew clean build -PideLine=243 -x test
# 2024.2
./gradlew clean build -PideLine=242 -x test
Each build creates a versioned ZIP (e.g., http-client-plus-1.0.5-243.zip) in both build/distributions/ and
dist/1.0.5/.
Plugin Verification
bash
./gradlew runPluginVerifier -PideLine=243
📖 Usage Guide
Getting Started
- Open Tool Window: View → Tool Windows → HTTP Client Plus
- Create Collection: Click "Add New" to create a request collection
- Build Request: Enter name, select method, add URL
- Configure Details: Add parameters, headers, body, or authorization
- Send Request: Click "Send" to save as .http file
- Execute: Run manually from editor (Ctrl+Enter)
Working with Collections
- Create: Use "Add New" button to create collections
- Organize: Group related requests together
- Browse: Use the Saved Requests tab to navigate
- Search: Filter requests by name or collection
Environment Variables
- Setup: Use the Environment tab to define variables
- Public Variables: Stored in
http-client.env.json - Private Variables: Stored in
http-client.private.env.json - Usage: Reference with
{{variable_name}}syntax
Importing from Postman
- File Import: Use File menu or drag & drop
- Collection Conversion: Automatic conversion to .http format
- Preserve Structure: Maintains folder organization
- Environment Mapping: Converts Postman variables
Authorization Setup
- Select Type: Choose from dropdown (Basic, Bearer, etc.)
- Configure: Enter credentials or tokens
- Apply: Headers automatically added to requests
- Environment: Use variables for sensitive data
📁 File Organization
text
<project>/
├── http-client-plus/
│ ├── collections/ # Request collections
│ │ ├── Collection_1/ # Individual collection
│ │ │ ├── request1.http # HTTP request files
│ │ │ └── request2.http
│ │ └── Collection_2/
│ └── environments/ # Environment files
│ ├── http-client.env.json # Public variables
│ └── http-client.private.env.json # Private variables
⚙️ Configuration
Storage Location
- Default:
<project>/http-client-plus/collections - Custom: Configure in plugin settings
- Environment:
<project>/http-client-plus/environments
Request Files
- Format: Standard IntelliJ HTTP Client format
- Execution: Manual via Ctrl+Enter in editor
- Sharing: Version control friendly
🔧 Development Features
REST Controller Integration
- Gutter Icons: Clickable icons in Spring controllers
- Auto-Detection: Recognizes mapping annotations
- Quick Creation: Generate requests from controller methods
- Parameter Mapping: Extract path variables and parameters
Response Processing
- Handler Scripts: Add JavaScript for response processing
- Global Variables: Set variables from response data
- Assertions: Add custom validation logic
- Chaining: Use response data in subsequent requests
📝 Notes
- All requests use standard IntelliJ HTTP Client format
- Files can be edited manually in the IDE
- Supports all HTTP Client features (environments, pre-request scripts, etc.)
- Perfect for API testing, development, and documentation
- Team collaboration through version control
🤝 Contributing
This is an open-source project. Check out the GitHub repository for source code, issues, and contribution guidelines. Contributions, bug reports, and feature requests are welcome!
