发布于 更新于
AI总结: 本文介绍了如何在Visual Studio Code中使用自定义变量和环境变量来管理HTTP请求的配置。主要内容包括定义共享变量、文件变量、请求变量、提示变量和内置变量等,以及如何通过修改配置文件来取消代理设置。
优化建议:
1. 考虑提供具体的示例代码,以便用户更直观地理解如何使用不同类型的变量。
2. 增加对环境变量的详细说明,特别是如何在不同环境中切换和使用这些变量。
3. 在取消代理部分,建议提供更安全和可维护的方法,而不是直接修改扩展的代码。
4. 提供对常见错误和解决方案的列表,帮助用户更快地排查问题。
存储不同环境的变量, 在Visual Studio代码设置文件中直接定义.
"rest-client.environmentVariables": {
"$shared": {
"version": "v1",
"prodToken": "foo",
"nonProdToken": "bar"
},
"local": {
"version": "v2",
"host": "localhost",
"token": "{{$shared nonProdToken}}",
"secretKey": "devSecret"
},
"production": {
"host": "example.com",
"token": "{{$shared prodToken}}",
"secretKey" : "prodSecret"
}
}
表示整个http文件的值, 在http文件中定义, 只有文件范围
@hostname = api.example.com
在http文件中定义, 定义请求变量的响应值, 作为下个请求的参数, 比如先获取token, 再请求
@baseUrl = https://example.com/api
# @name login
POST {{baseUrl}}/api/login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
name=foo&password=bar
###
@authToken = {{login.response.headers.X-AuthToken}}
# @name createComment
POST {{baseUrl}}/comments HTTP/1.1
Authorization: {{authToken}}
Content-Type: application/json
{
"content": "fake content"
}
###
@commentId = {{createComment.response.body.$.id}}
# @name getCreatedComment
GET {{baseUrl}}/comments/{{commentId}} HTTP/1.1
Authorization: {{authToken}}
###
# @name getReplies
GET {{baseUrl}}/comments/{{commentId}}/replies HTTP/1.1
Accept: application/xml
###
# @name getFirstReply
GET {{baseUrl}}/comments/{{commentId}}/replies/{{getReplies.response.body.//reply[1]/@id}}
发送请求时 要求用户输入使用的变量
# @prompt text 请求时弹框提示输入文本
GET https://127.0.0.1/test
{
"text": "{{text}}",
}
{{$guid}}
{{$randomInt min max}}
{{$timestamp [offset option]}}
{{$datetime}} 时间戳
{{$datetime -3 h}} 3小时前
{{$datetime 2 d}} 2天后
{{$datetime rfc1123|iso8601 [offset option]}}
{{$datetime rfc1123}} Wed, 16 Apr 2025 06:23:49 GMT
{{$datetime iso8601}} 2025-04-16T06:24:53.379Z
{{$datetime 'YYYY-MM-DD'}} 2025-04-16
{{$localDatetime rfc1123|iso8601 [offset option]}}
使用本地时区
{{$localDatetime rfc1123}} Wed, 16 Apr 2025 06:23:49 GMT
{{$localDatetime iso8601}} 2025-04-16T14:25:57+08:00
{{$localDatetime 'YYYY-MM-DD'}} 2025-04-16
{{$processEnv [%]envVarName}}
envVarName: 指定本地机器环境变量
%: 可选, 制定时, 将envVarName视为扩展设置环境变量, 并将其值用于查找.
{{$processEnv PATH}} PATH环境变量
{{$dotenv [%]variableName}}
返回.env文件中设置的环境变量, .env文件与.http文件在统一目录中
.env变量定义格式
VAR1=ABC
{{$aadToken [new] [public|cn|de|us|ppe] [<domain|tenantId>] [aud:<domain|tenantId>]}}
{{$oidcAccessToken [new] [<clientId:<clientId>] [<callbackPort:<callbackPort>] [authorizeEndpoint:<authorizeEndpoint}] [tokenEndpoint:<tokenEndpoint}] [scopes:<scopes}] [audience:<audience}]}
因为VSCode配置了代理, 而用rest-client时 基本上不要代理, 又没有关代理的配置 虽然rest-client提供了excludeHostsForProxy配置, 但是经常性要加新域名, 已配置近30个了
可以修改以下文件: c:\Users\Administrator.vscode\extensions\humao.rest-client-0.25.1\dist\extension.js
修改获取代理配置, 改名, 让找不到代理配置即可 workspace.getConfiguration("http") -> workspace.getConfiguration("http1")
不过环境变量如果配置了http.proxy, 应该还能用, 未测试.