01
6
内容纲要

Visual Studio 2022.http 文件编辑器提供了一种便捷的方式来测试 ASP.NET Core项目,尤其是 API 应用。 编辑器提供一个 UI,用于:

创建和更新 .http 文件。
发送 .http 文件中指定的 HTTP 请求。
显示响应。
本文包含以下文档:

.http 文件语法。
如何创建 .http 文件。
如何从 .http 文件发送请求。
在何处查找可配置的 .http 文件选项。
如何使用 Visual Studio 2022 终结点资源管理器在 .http 文件中创建请求。
.http 文件格式和编辑器受 Visual Studio Code REST 客户端扩展的启发。 Visual Studio 2022 .http 编辑器将 .rest 识别为相同文件格式的替代文件扩展名。

先决条件
安装了“ASP.NET 和 Web 部署”工作负载的 Visual Studio 2022 版本 17.8 或更高版本。
.http 文件语法
以下部分介绍 .http 文件语法。

请求
HTTP 请求的格式为 HTTPMethod URL HTTPVersion,全部在一行上,其中:

HTTPMethod 是要使用的 HTTP 方法,例如:
OPTIONS
GET
HEAD
POST
PUT
PATCH
DELETE
TRACE
CONNECT
URL 是向其发送请求的 URL。 此 URL 可以包括查询字符串参数。 此 URL 不必指向本地 Web 项目。 它可以指向 Visual Studio 可以访问的任何 URL。
HTTPVersion 是可选的,指定应使用的 HTTP 版本,即 HTTP/1.1、HTTP/2 或 HTTP/3。
通过使用行 ### 作为分隔符,文件可以包含多个请求。 以下示例在一个文件中显示了三个请求,说明了此语法:
复制
GET https://localhost:7220/weatherforecast

GET https://localhost:7220/weatherforecast?date=2023-05-11&location=98006

GET https://localhost:7220/weatherforecast HTTP/3

请求标头
若要添加一个或多个标头,请将每个标头立即添加到请求行后其自己的行中。 不要在请求行与第一个标头之间或后续标头行之间包含任何空白行。 格式为 HeaderName: Value,如以下示例所示:

HTTP

复制
GET https://localhost:7220/weatherforecast
Date: Wed, 27 Apr 2023 07:28:00 GMT

GET https://localhost:7220/weatherforecast
Cache-Control: max-age=604800
Age: 100

重要

调用使用标头进行身份验证的 API 时,请勿将任何机密提交到源代码存储库。 请参阅本文后面的支持存储机密的方法,例如 ASP.NET Core 用户机密、Azure Key Vault 和 DPAPI 加密。

请求正文
在空白行后面添加请求正文,如以下示例所示:

POST https://localhost:7220/weatherforecast
Content-Type: application/json
Accept-Language: en-US,en;q=0.5

{
"date": "2023-05-10",
"temperatureC": 30,
"summary": "Warm"
}

注释
以 # 或 // 开头的行是注释。 当 Visual Studio 发送 HTTP 请求时,将忽略这些行。

变量
以 @ 开头的行使用语法 @VariableName=Value 定义变量。

可以在稍后在文件中定义的请求中引用变量。 通过用双大括号括起名称 {{ 和 }} 来引用它们。 以下示例演示在请求中定义和使用的两个变量:

@hostname=localhost
@port=44320
GET https://{{hostname}}:{{port}}/weatherforecast
可以使用文件前面定义的其他变量的值来定义变量。 以下示例在请求中使用一个变量,而不是前面示例中所示的两个变量:

@hostname=localhost
@port=44320
@host={{hostname}}:{{port}}
GET https://{{host}}/api/search/tool
环境文件
若要在不同的环境中为变量提供不同的值,请创建名为 http-client.env.json 的文件。 在 .http 文件所在的同一目录中或其中一个父目录中找到该文件。 下面是环境文件的示例:

{
"dev": {
"HostAddress": "https://localhost:44320"
},
"remote": {
"HostAddress": "https://contoso.com"
}
}

环境文件是一个 JSON 文件,其中包含一个或多个命名环境,如前面的示例中的“dev”和“remote”。 每个命名环境都包含一个或多个变量,例如前面的示例中的 HostAddress。 从环境文件中引用变量的方式与其他变量相同,如以下示例所示:

HTTP
GET {{HostAddress}}/api/search/tool

发送请求时用于变量的值由 .http 文件编辑器右上角的环境选择器下拉列表确定。 以下屏幕截图显示了选择器:

.http file editor with environment selector highlighted. The 'dev' environment is selected.

环境文件不必位于项目文件夹中。 Visual Studio 在 .http 文件所在的文件夹中查找环境文件。 如果它不在该文件夹中,Visual Studio 会浏览父目录来查找它。 找到名为 http-client.env.json 的文件后,搜索将结束。 将使用最接近 .http 文件的文件。

创建或编辑 .http 文件后,可能需要关闭并重新打开项目,以查看环境选择器中反映的更改。 按 F6 选择环境选择器。

Visual Studio 在以下情况下显示警告:

.http 文件引用了未在 .http 文件或环境文件中定义的变量。环境文件包含 .http 文件中未引用的变量。在环境文件中定义的变量可以与 .http 文件中定义的变量相同,也可以不同。 如果在 .http 文件和环境文件中都定义了变量,则 .http 文件中的值将替代环境文件中的值。


声明: 本文采用 BY-NC-SA 协议进行授权. 未标注“转”的文章均为原创,转载请注明转自: 使用Visual Studio 2022 中的 .http 文件, ASP.NET Core API快速测试

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。