前言:
此刻咱们对“aspnet自定义类如何引用”都比较看重,姐妹们都想要了解一些“aspnet自定义类如何引用”的相关内容。那么小编在网络上收集了一些对于“aspnet自定义类如何引用””的相关内容,希望各位老铁们能喜欢,大家快快来学习一下吧!使用 dotnet-httpie 执行 http 文件请求Intro
最近微软在 VS 上开始支持了 http/rest 文件,我们除了 vscode 之外也可以使用 vs 来编辑 http 文件和执行 http 请求了,可以参考:
有时候想命令行执行,不想打开 vs/vscode,于是在之前开发的 dotnet-httpie 小工具上增加了执行 http 文件请求的功能
SampleGet Started
如下示例,是一个 http 文件里的内容, # 或者 // 表示注释 ,它包含了两个 http 请求,两个请求之前用 ### 分隔开来,
第一个是一个 GET 请求,请求地址是
第二个请求是一个 POST 请求, post 一个 json request body 来登录
# Send request to get notice from reservation siteGET
###
# Sign sparktodo
POST
Content-Type: application/json; charset=utf-8
{
"email": "weihanli@outlook.com",
"password": "Test1234"
}
可以看到每个 http request 和请求报文其实是很像的,这样就非常的简洁清晰
Variable
再来看一个使用到变量的示例,可以用 @ 来声明变量,如果是在 request 之外的可以被当作是文件级别的变量,如果是在某个 request 内的则只有这个 request 可以使用这个文件,使用变量时使用 {{variableName}} 即可,例子如下:
@baseUrl =Moreover###
# @name notice # vs not supported by now
GET {{baseUrl}}/api/notice
Accept: application/json
###
# @name reservationPlaces
@acceptMediaType = application/json
GET {{baseUrl}}/api/ReservationPlaces
Accept: {{acceptMediaType}}
目前 vs 的支持比较有限,实用性有点不太够,dotnet-httpie 支持了部分 vscode 插件 RestSharp 的功能
Environment Variable Reference
首先我们可以引用环境变量,有一些比较像 api-key/password 等敏感的信息可能会放在环境变量,所以觉得环境变量的引用还是比较常见的,对于环境变量我们可以使用 {{$processEnv envName}} 来引用,觉得 processEnv 有点太长了,也支持使用 env 来代替 processEnv,示例如下:
GET {{baseUrl}}/api/ReservationPlaces?t={{$env timestamp}}
但是 vscode 的 RestClient 插件并不支持,如果要使用 RestClient 执行请求的话,建议使用 processEnv
Named request
request 支持使用 # @name requestName 或 # @name=requestName 或 // @name requestName 或 // @name=requestName 来指定 request 的 name
# @name reservationPlacesRequest referenceGET {{baseUrl}}/api/ReservationPlaces
request 有了 name 之后,我们可以在后续 request 中引用前面 request 的 response 中的内容,如下所示
@baseUrl = sparktodo.weihanli.xyz###
# @name login
POST
Content-Type: application/json; charset=utf-8
{
"email": "weihanli@outlook.com",
"password": "Test1234"
}
### getVersion
GET
Authorization: Bearer {{login.response.body.$.data.accessToken}}
这里有两个 request,第一个 request 的 name 是 login 第二个 request 引用了 login 请求的 response body 中的 data.accessToken 字段,并将其作为 Auth 用的 Bearer token,也可以通过 {{requestName.response.headers.headerName}} 引用 response header
dotnet-httpie
使用 dotnet-httpie 执行 http 请求需要使用 0.7.0 及以上版本
dotnet tool update --global dotnet-httpie
安装好之后执行命令如下:
dotnet-http exec HttpStartedSample.http
exec command 后加 http 文件的路径即可
我们执行一下前面 Request reference 的示例,输出结果如下
login request
request#2More
目前 VSCode RestClient、JetBrains 家的 IDE 和 VS 对 http 文件的支持各异,相对来说感觉 vscode RestClient 的支持更多更完善一些, 更多 RestClient 支持的一些用法可以参考:
希望早点有一个相对统一的规范,这样大家无论使用什么 IDE 在哪里使用能够有一致的体验
通过 request reference, 我们可以使用 http 文件来做一些自动化测试,比如前面的示例,每次先登录获取一个 token 然后借助 token 验证其他的接口
Parse http 文件的代码实现在这里
有需要的童鞋也可以自取
References