IntelliJ IDEA HTTP Client

发布于 2024-12-01 02:59:06 字数 2864 浏览 16 评论 0

IntelliJ IDEA 的 HTTP 客户端编辑器是以 .http.rest 结尾的文本文件。

语法

Method Request-URI HTTP-Version
Header-field: Header-value

Request-Body

其中注释是以 //# 开头的脚本。

可使用 ### 来分隔多个请求。

对于 GET 请求,可省略请求方法。

可将长请求代码分成多行书写:

// Using line breaks with indent
GET http://example.com:8080
    /api
    /html
    /get
    ?id=123
    &value=content

在请求行上加入 @no-log 注释可取消记录请求历史:

// @no-log
GET example.com/api

在请求行上加入 @no-cookie-jar 注释可取消保存 cookies:

// @no-cookie-jar
GET example.com/api

使用 Ctrl+J 可选择动态模板插入。

还可点击 Examples 标签,查看相应 HTTP 请求的示例代码。

使用变量

使用 {{variable}} 引用变量:

  • 环境变量(点击 Ad Environment File 创建)
  • 动态变量,每次发送请求时才生成值:
    • $uuid :生成统一标识符(UUID-v4)
    • $timestamp :生成当前 UNIX 时间戳
    • $randomInt :生成 0 到 1000 之间的随机整数
  • 响应处理脚本中的变量,即 client.global.set 方法中设置的变量

响应处理脚本

在文件中直接插入响应处理脚本,以 > 开头,并以 {% %} 结尾:

GET host/api/test

> {%
// Response Handler Script
...
%}

HTTP Response Handler 是用 ECMAScript 5.1 编写的,并暴露出了两个对象:

  • client 对象:保存了会话元数据。该对象状态将一直存在,直到关闭 IntelliJ IDEA 为止
  • response 对象:保存了响应数据

例如 {% client.global.set("auth_token", response.body.json.token); %} 可被后续脚本通过 {{auth_token}} 的方式引用。

可在 clientresponse 对象上,按 Ctrl+B 查看源码文档。

执行

鼠标定位到请求的第一行脚本,然后按 Alt+Enter ,可便捷地执行请求。

此外, Ctrl+Click 第一行请求,可通过默认浏览器打开该地址。

示例脚本

rest-client.private.env.json 存放自定义变量:

{
  "production": {
    "baseUrl": "https://aip.baidubce.com",
    "faceBaseUrl": "https://aip.baidubce.com/rest/2.0/face/v3",
    "apiKey": "xxx",
    "secretKey": "xxx"
  }
}

HTTP API.rest (后缀也可以为 .http )存放 API 请求:

# 获取 Access Token
POST {{baseUrl}}/oauth/2.0/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials
&client_id={{apiKey}}
&client_secret={{secretKey}}

> {%
client.global.set('accessToken', response.body['access_token']);
client.log(client.global.get('accessToken'));
%}

###

# 人脸检测
POST {{faceBaseUrl}}/detect?access_token={{accessToken}} HTTP/1.1
Content-Type: : application/json

{
  "image":"...",
  "image_type": "BASE64",
  "face_field": "quality,beauty",
  "liveness_control": "HIGH"
}

官网连最基本的用 base64 等编码拼接参数的教程都没有,搜博客,又千篇一律。这东西连这种功能都没有?可以先把文件转成 Base64(可通过线上工具或自行编码),然后放到请求体的参数中就可以了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

八巷

暂无简介

文章
评论
25 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文