今天冬至,你吃饺子了么? 学会
asp.net core 8
中的.http
文件配置编写,吃饺子啧香,不信你试试。
.http 文件介绍
.http 是 Visual Studio 2022 17.6
版本或者更高版本提供的一种便捷的方式来测试 ASP.NET Core
项目的一种文本编辑器,主要用于测试 Web API
。类似 swagger、k4 ui、postman
这类可以发起 HTTP
请求的工具,只不过需要我们自己编写相关的调试代码。
.http 文件和 Visual Studio Code
的 REST Client
插件一样,但 .http
文本编辑器只包含了一些常规的功能,没有 REST Client
插件的功能丰富。在 Visual Studio 2022
中可以以 .http
结尾,也可以以 .rest
文件格式结尾。
.http 文件语法介绍
1. 注释
以 #
或者 //
开头的语句是注释行:
# 注释1
// 注释2
2. 创建变量
定义格式: @VariableName=Value
;使用格式 : {{VariableName}}
,类似vue、angular
中的插值表达式;
@hostname=localhost
@port=5000
Get http://{{hostname}}:{{port}}/weatherforecast
还可以将两个变量拼接后保存到一个变量中:
@hostname=localhost
@port=5000
@host={{hostname}}:{{port}}
Get http://{{host}}/weatherforecast
3. 请求
格式: HTTPMethod URL [HTTPVersion]
,全部在一行上,中间用空格隔开。
Get http://localhost:5000/weatherforecast
HTTPMethod 表示要发起的 HTTP
谓词方法,支持:
- OPTIONS
- GET
- HEAD
- POST
- PUT
- PATCH
- DELETE
- TRACE
- CONNECT
URL 表示发起 HTTP
请求的URL
地址,这里的URL
不仅仅是你自己项目的API
,可以是任何可以访问到的API
,例如可以是:https://www.baidu.com
;HTTPVersion 是可选的,指定应使用的 HTTP
版本,即HTTP/1.1、HTTP/1
或HTTP/3
;
一个 .http
文件中包含多个请求时使用 ###
作为分隔符:
GET http://localhost:5000/weatherforecast/getlist
###
GET http://localhost:5000/weatherforecast/getlist?id=1
###
GET http://localhost:5000/weatherforecast/getlist HTTP/3
###
建议每个请求下都加上 ###
,它表示一个完整的请求块,即使是单个请求。
4. 请求头
请求头的语句紧接在请求行的后面一行,请求行和请求头之间不能包含空白行,请求头之间也不能有空白行。
GET http://localhost:5000/weatherforecast/getlist
Accept: application/json
Content-Type: application/json
Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
###
上面的示例中,在 HTTP
请求头中设置 Accept、Content-Type、Authorization
等参数。
5. 请求正文
在请求头后面添加请求正文:
POST http://localhost:5000/weatherforecast/add
Accept: application/json
Content-Type: application/json
Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
{
"date": "2023-05-10",
"temperatureC": 30,
"summary": "Warm"
}
###
上面的示例中,{date:"2023-05-10","temperatureC":30,"summary":"Warm"}
为 POST
请求的请求参数。
6. 使用 .http 文件
如果是调试本地接口,则先点击 调试,这里的调试和VS菜单栏的运行按钮的功能是一样,然后点击 发送请求。 如果是调试远程接口,则直接点击 发送请求。
调用示例如下:
右侧窗口为调用接口后的响应结果,其中:
- Status:接口调用状态,200 OK表示响应成功
- Time:1118.16ms,接口响应时间为1118.16毫秒
- Size:26 bytes,响应内容大小为26 bytes
- Formatted:格式化后的响应结果体
- Raw:原始的响应结果体
- Headers:响应头
- Request:本次请求的请求信息,包括请求地址,请求头,请求体等信息
终结点资源管理器介绍
使用终结点资源管理器可以将你的 API
在 .http
文件中自动生成请求块,无需手动编写。
终结点资源管理器打开路径:视图 > 其它窗口 > 终结点资源管理器
在终结点资源管理器中显示了你当前项目中的所有 API
接口,你可以 右键 其中一个接口,来创建改接口的请求块:
如果存在项目名用作文件名的 .http
文件,则会将请求添加到该文件。否则,会创建项目名用作文件名的 .http
文件,并且将请求添加到该文件。
通过终结点资源管理器来创建请求块还是非常方便快捷的,不过要吐槽一点的是,接口没有按照控制器来分组,没有接口搜索功能,在实际开发中,接口多了之后分组和搜索功能还是很有必要的。