Visual Studio自带http请求测试功能实例讲解

作者:微信公众号:【架构师老卢】
5-3 15:56
17

概述:Visual Studio 2022 文件编辑器提供了一种直接在 Visual Studio 上测试 Web API 的简单方法,而无需切换到其他工具。在本文中,我介绍了如何使用 .http 文件发送 HTTP 请求。.http文件编辑器提供了一个 UI,可用于发送 HTTP 请求并在 Visual Studio 中可视化请求/响应详细信息。此功能存在于 Visual Studio 2022 版本 17.6 及更高版本中。.http出于演示目的,我使用 Visual Studio 2022 创建了一个 ASP.NET Core Web API 项目。创建新项目时,已可以在解决方案中看到该文件:

Visual Studio 2022 文件编辑器提供了一种直接在 Visual Studio 上测试 Web API 的简单方法,而无需切换到其他工具。在本文中,我介绍了如何使用 .http 文件发送 HTTP 请求。.http

文件编辑器提供了一个 UI,可用于发送 HTTP 请求并在 Visual Studio 中可视化请求/响应详细信息。此功能存在于 Visual Studio 2022 版本 17.6 及更高版本中。.http

出于演示目的,我使用 Visual Studio 2022 创建了一个 ASP.NET Core Web API 项目。创建新项目时,已可以在解决方案中看到该文件:When a new project is created, you have already see the file in the solution:.http

默认情况下,这是在 .http 文件中自动生成的内容。让我们来看看这个文件的结构是怎样的:

@HttpFilesDemo_HostAddress = http://localhost:5192  
  
GET {{HttpFilesDemo_HostAddress}}/weatherforecast/  
Accept: application/json  
  
###
  • 开头的行定义一个变量。例如,the 是包含主机地址 URL 的变量。@@HttpFilesDemo_HostAddress
  • 变量可以在请求中引用,方法是将它们的名称括在双大括号中(请参阅存在 GET 请求的行)。
  • 以 或 开头的行是注释,VS 在发送 HTTP 请求时会忽略它们。一个文件可以包含多个请求,方法是使用带有分隔符的行(如果要通过单击发送多个请求,则可以删除)。#//######

出于演示目的,我创建了一个具有三个端点的控制器,我将使用它来演示如何使用该文件:.http

[ApiController]  
[Route("[controller]")]  
public class ProductsController : ControllerBase  
{  
    [HttpGet]  
    public IActionResult Get()  
    {  
        var products = Enumerable.Range(1, 3)  
                .Select(i => new Product { Id = i, Name = $"Product {i}" })  
                .ToList();  
  
        return Ok(products);  
    }  
  
    [HttpPost]  
    public IActionResult Post(Product product)  
    {  
        return Ok(product);  
    }  
  
    [HttpDelete]  
    public IActionResult Delete(int productId)  
    {  
        return Ok($"Product {productId} was deleted.");  
    }  
}

创建 .http 文件

解决方案中可以有多个文件。若要通过在解决方案中创建新文件来创建新文件:右键单击“>”添加>新项“>,然后添加扩展名,或者可以使用**”终结点资源管理器:**查看“>其他 Windows >终结点资源管理器”,根据终结点自动生成它。.http.http.http

每次创建新终结点时,都无需手动更新文件,而是可以使用终结点资源管理器上的 VS 功能,该功能将为你执行此操作。为此,您需要打开“浏览终结点”窗口:.http

Endpoins Explorer 上,您可以看到应用程序中的所有端点,然后右键单击并单击“生成请求”(如果您的新端点在此窗口中不可见,请单击刷新按钮):

VS 将在文件中为你创建终结点,但你可能仍需要对某些请求进行一些更改。例如,它是这样创建的:.http

  • 对于 GET 请求,它将按原样工作。
  • 对于 POST 请求,需要添加请求正文(我接下来将展示一个示例)。
  • 对于 DELETE 请求,您可以替换 .0productId

请求标头

可以向请求添加一个或多个标头。为此,您可以在请求行下方的行中包含标题(不要包含空行),格式为:。例如:HeaderName: Value

GET {{HttpFilesDemo_HostAddress}}/products  
X-API-Key: demo

请求正文

若要添加请求正文,请在请求后添加一个空行(如果有,则在标头之后添加空行)。例如:

POST {{HttpFilesDemo_HostAddress}}/products  
Content-Type: application/json  
X-API-Key: demo  
  
{  
  "id": "1",  
  "name": "ProductTest"  
}

使用 .http 文件执行 HTTP 请求

要发出 HTTP 请求,请转到 .http 文件,在请求上方,您可以单击请求上方的“发送请求”选项。例如:

单击此选项时,将发送请求,您可以在 VS 中看到所有请求详细信息。例如:

状态代码格式化响应:

Raw 响应:

标题

请求

Visual Studio 2022 .http 文件编辑器允许在不离开 Visual Studio 环境的情况下将 HTTP 请求发送到 Web API 终结点,从而提供更快的方法来测试终结点,而无需使用 Swagger、Postman 或其他工具。

相关留言评论
昵称:
邮箱:
阅读排行