使用 Visual Studio 2022 中的 .http 文件 | Microsoft Learn
.http
文件语法
-
请求:HTTP 请求的格式为
HTTPMethod URL HTTPVersion
,其中 HTTP 方法可以是 GET、POST、PUT 等,URL 是请求的目标地址,HTTPVersion 是可选的。
示例:GET https://api.example.com/data HTTP/1.1 POST https://api.example.com/create
-
请求标头:标头添加在请求行之后,格式为
HeaderName: Value
。
示例:GET https://api.example.com/data Accept: application/json Authorization: Bearer YOUR_ACCESS_TOKEN
-
请求正文:在空白行后面添加请求正文。
示例:POST https://api.example.com/create Content-Type: application/json { "name": "John Doe", "age": 30 }
-
注释:以
#
或//
开头的行是注释,会被忽略。
示例:# This is a comment line // Another comment GET https://api.example.com/data
-
变量:以
@
开头的行定义变量,格式为@VariableName=Value
,变量可以在后续请求中通过{{VariableName}}
引用。
示例:@apiUrl=https://api.example.com @token=YOUR_ACCESS_TOKEN GET {{apiUrl}}/data Authorization: Bearer {{token}}
环境文件
-
环境文件(
http-client.env.json
)用于在不同环境中为变量提供不同的值。
示例:{ "dev": { "apiUrl": "https://dev.example.com", "token": "DEV_ACCESS_TOKEN" }, "prod": { "apiUrl": "https://api.example.com", "token": "PROD_ACCESS_TOKEN" } }
-
环境文件是一个 JSON 文件,包含多个命名环境及其对应的变量。
示例:{ "dev": { "host": "localhost", "port": 5000 }, "prod": { "host": "api.example.com", "port": 443 } }
-
可以通过
.http
文件编辑器右上角的环境选择器来选择当前环境。
示例:GET {{apiUrl}}/data Authorization: Bearer {{token}}
-
特殊环境
$shared
用于定义在多个环境中相同的值。
示例:{ "$shared": { "apiUrl": "https://api.example.com" }, "dev": { "token": "DEV_ACCESS_TOKEN" }, "prod": { "token": "PROD_ACCESS_TOKEN" } }
特定于用户的环境文件
-
用户特定的值应存储在
http-client.env.json.user
文件中,该文件默认不提交到源代码管理。
示例:{ "dev": { "token": "USER_DEV_ACCESS_TOKEN" } }
-
如果在
http-client.env.json
和http-client.env.json.user
中都定义了变量,则用户文件中的值优先级更高。
示例:// http-client.env.json { "dev": { "token": "DEFAULT_DEV_ACCESS_TOKEN" } } // http-client.env.json.user { "dev": { "token": "USER_DEV_ACCESS_TOKEN" } }
机密管理
-
ASP.NET Core 用户机密:可以通过环境文件从用户机密中获取值。
示例:{ "dev": { "ApiKey": { "provider": "AspnetUserSecrets", "secretName": "config:ApiKey" } } }
-
Azure Key Vault:可以使用 Azure Key Vault 中的机密值,需要登录到有权访问 Key Vault 的帐户。
示例:{ "dev": { "SecretKey": { "provider": "AzureKeyVault", "secretName": "SecretKey", "resourceId": "/subscriptions/your-subscription-id/resourceGroups/your-resource-group/providers/Microsoft.KeyVault/vaults/your-key-vault" } } }
-
DPAPI 加密:使用 Windows 的数据保护 API (DPAPI) 加密敏感数据,加密值特定于用户和计算机。
示例:{ "dev": { "SensitiveData": { "provider": "Encrypted", "value": "AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA..." } } }
其他功能
-
环境变量:可以通过
$processEnv
获取环境变量的值。
示例:GET {{apiUrl}}/data X-USERNAME: {{$processEnv USERNAME}}
-
.env 文件:可以通过
$dotenv
获取.env
文件中定义的变量值。
示例:// .env 文件 API_KEY=your_api_key // .http 文件 GET {{apiUrl}}/data X-API-KEY: {{$dotenv API_KEY}}
-
随机整数:使用
$randomInt
生成随机整数。
示例:GET {{apiUrl}}/data X-RANDOM-ID: {{$randomInt 1000 9999}}
-
日期和时间:使用
$datetime
、$localDatetime
和$timestamp
生成日期和时间字符串。
示例:GET {{apiUrl}}/data X-CURRENT-DATE: {{$datetime "yyyy-MM-dd"}} X-TIMESTAMP: {{$timestamp}}