簡介
JetBrains IDE(如IntelliJ IDEA, WebStorm, PhpStorm和PyCharm)自帶一個內置的HTTP客户端,允許直接從IDE發送HTTP請求,而無需使用第三方工具,如Postman或cURL。
JetBrains IDE 中的 HTTP 客户端是什麼?
JetBrains IDE 中的HTTP客户端是一個輕量級但功能強大的功能,它允許開發人員直接從IDE中發送HTTP請求(GET, POST, PUT, DELETE等)。
它支持REST API測試、GraphQL請求、WebSocket通信和環境變量。
主要特點
- 在
.http或.rest文件中編寫並執行 HTTP 請求 - 支持
REST API請求(GET、POST、PUT、DELETE 等) - 支持
GraphQL和WebSocket請求 - 允許設置自定義請求頭、請求參數和請求體
- 支持身份驗證、文件上傳和環境變量
- 保存請求歷史記錄以供調試
基本語法
### Comment (optional)
HTTP_METHOD URL [QUERY_PARAMS]
HEADER_1: VALUE
HEADER_2: VALUE
(Empty line)
BODY (optional)
示例用法
創建簡單的 GET 請求
### Fetch data from a public API
GET https://jsonplaceholder.typicode.com/posts/1
Accept: application/json
GET:查詢數據的HTTP方法https://jsonplaceholder.typicode.com/posts/1:API 接口Accept: application/json:可接受的響應類型
帶有 JSON 主體的 POST 請求
### Create a new post
POST https://jsonplaceholder.typicode.com/posts
Content-Type: application/json
{
"title": "My New Post",
"body": "This is the content of the post.",
"userId": 1
}
POST:發送數據的HTTP方法Content-Type: application/json:指定請求主體是JSONJSON body:發送到 API 的實際數據
PUT 請求(更新數據)
### Update a post
PUT https://jsonplaceholder.typicode.com/posts/1
Content-Type: application/json
{
"id": 1,
"title": "Updated Title",
"body": "Updated content.",
"userId": 1
}
DELETE 請求
### Delete a post
DELETE https://jsonplaceholder.typicode.com/posts/1
在 .http 文件中定義變量
可以在 .env 文件中或直接在 .http 請求文件中定義變量
### Use variables in the request
GET {{baseUrl}}/posts/1
Accept: application/json
> {%
baseUrl = "https://jsonplaceholder.typicode.com"
%}
{{baseUrl}}:使用定義的變量而不是硬編碼 URL{% %}:語法塊定義變量 baseUrl
使用環境變量
不需要直接在 .http 文件中定義變量,而是可以將變量存儲在單獨的文件中
- 創建一個
.env文件(例如,項目根目錄中的http-client.env.json) - 定義環境和變量
{
"development": {
"baseUrl": "https://jsonplaceholder.typicode.com",
"authToken": "Bearer my-secret-token"
},
"production": {
"baseUrl": "https://api.example.com",
"authToken": "Bearer prod-secret-token"
}
}
- 在
.http請求中使用環境
### Fetch posts using environment variables
GET {{baseUrl}}/posts
Authorization: {{authToken}}
- 切換環境:單擊
.http文件右上角的環境下拉菜單,然後選擇開發或生產
使用 Bearer Token 身份驗證
GET https://api.example.com/protected-resource
Authorization: Bearer my-secret-token
使用基本身份驗證
GET https://api.example.com/private-data
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
發送表單數據
POST https://api.example.com/login
Content-Type: application/x-www-form-urlencoded
username=myUser&password=myPass
上傳文件
POST https://api.example.com/upload
Content-Type: multipart/form-data; boundary=boundary
--boundary
Content-Disposition: form-data; name="file"; filename="myfile.txt"
Content-Type: text/plain
< ./myfile.txt
--boundary--
使用 GraphQL 請求
### GraphQL query request
POST https://api.example.com/graphql
Content-Type: application/json
{
"query": "query { user(id: 1) { id, name, email } }"
}
打開 WebSocket 連接
GET ws://echo.websocket.org
圖示