理想论坛_专业20年的财经股票炒股论坛交流社区 - 股票论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3104|回复: 0

Idea rest client 使用(全) 真香

[复制链接]

9650

主题

9650

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
28966
发表于 2019-12-27 13:48 | 显示全部楼层 |阅读模式
看了网上很多几多的 idea rest client 讲解,大多都只是讲了它怎样怎样好,都只是简单的测了一个 json 的接口而已,小我理论了一把,里面照旧有挺多坑的,但不能不说,那个剧本化处置赏罚请求的功用确切挺棒。
剧本化设备确切很方便,linux 操纵文件来设备情况变量取代了windows 的可视化设备,sublime 操纵文件来设备它的全数设备项取代传统的可视化设备,这类文件化的方式可以做到可迁移,多端立即同步和多人同享,有过履历的人自然懂我在说什么。
本文内容:

关于剧本化 mock 的理论,免复制 token 理论,文件传输理论
关于语法

请求的语法底子上和 http 协议内容是同等的,结构以下
  1. ### 操纵三个 # 来分隔多个请求GET/POST 请求地址(可拼接查询参数)请求头键值对请求体> {% %}# 响应处置赏罚 > 打头和 shell 很像,然后用 {% %} 括起来的剧本内容 ,在剧本中可以操纵 javascript 原生语法,这就很强大了# 剧本中有几个内置工具 client 表现当前客户端,response 表现响应结果
复制代码
对于这个操纵文档,我在官网没有找到对应的文档位置,但在 idea 自己供给了一些不错的操纵示例,它的位置在 Tools/HTTP Client/Open HTTP Requests Collection
每发送一个请求后,你可以在历史记载中找到它,idea 会为你保存近来 50 条请求,保存的是编译后的请求,当你发送的请求的响应结果和现实不符时,你可以在这里找到题目标原因原由,它在项目标 .idea/httpRequests 文件夹中。
常用示例

设备情况信息
这也是它比力强大的一方面,操纵一个 json 来设备全数情况,只要在请求剧本目录下便可以读到,依照约定大于设备的原则,文件名 http-client.env.json 表现普通变量可放的地方 http-client.private.env.json 表现密码等私有变量设备的地方,设备大略以下。在运转请求剧本的时候,idea 会提醒你要选哪个情况
  1. {  "local":{    "baseUrl": "http://localhost:8083/",    "checkCode": "http://localhost:8081/sanritools/company/token?env=dev",  },  "dev": {    "baseUrl": "http://devhost:port/",    "checkCode": "http://localhost:8081/sanritools/company/token?env=dev",  },  "sit": {    "baseUrl": "http://sithost:port/",    "checkCode": "http://localhost:8081/sanritools/company/token?env=sit",  }}
复制代码
登录 token 示例
网上的示例底子上都是在说,用一个接口获得到 token ,然后保存到全局变量中,然后后背的接口便可以间接操纵了,代码以下,可是本人试了无数次都没乐成,再者,你们项目都没考证码的吗。
  1. ### 获得 token 值GET {{checkCode}}Content-Type: application/json> {%client.global.set("token", response.body.token);%}### 获得素材列表POST {{baseUrl}}/media/listContent-Type: application/jsonAuthorization: {{token}}{  "pageNo": 1,  "pageSize": 10}
复制代码
上面这个是有题目标,返回值 response.body 此外是个 json 字符串并非 javascript 工具,需要分解一下,前面也说了,这里可以操纵原生 javascript 剧本,所以 JSON.parse(response.body).token 才华切确获得到 token ,
第二个题目,我们现在这个 token 是存在 redis 的,所以我可以绕过考证码,另写一个接口去 redis 间接获得 token ,剧本终极以下
  1. ### 获得 token 值GET {{checkCode}}Content-Type: application/json> {%client.global.set("token", JSON.parse(response.body).token);%}### 获得素材列表POST {{baseUrl}}/media/listContent-Type: application/jsonAuthorization: {{token}}{  "pageNo": 1,  "pageSize": 10}
复制代码
文件传输理论
前面说了,输入输出和 shell 中很像,所以这里输入一个文件操纵 < 文件地址,尽情找个 multipart/form-data 的数据格式检察一下,就晓得文件怎样传了,其实在示例中也有,以下面剧本所示,它操纵一个 boundary 的 key 绑定当前所要提交多个 part 的数据,每个 part 可所以差别的数据格式 ;
  1. ### 测试发送文件信息(文件元数据信息查询)POST {{baseUrl}}/media/upload/fileMetaDataContent-Type: multipart/form-data; boundary=WebAppBoundaryAuthorization: {{token}}--WebAppBoundaryContent-Disposition: form-data; name="fileSize"Content-Type: application/json1024--WebAppBoundaryContent-Disposition: form-data; name="md5"Content-Type: application/jsonsdafasdfasfd--WebAppBoundaryContent-Disposition: form-data; name="partFile"; filename="zhongwenbuxin.avi"Content-Type: application/octet-stream< C:\Users\091795960\Videos/V0106_1024KB.avi--WebAppBoundary--
复制代码
对于返答信息乱码我没有碰到,也没有设备网上说的消息头和启动设备,返回消息是一般编码的;我只碰到了上传上去的文件名是乱码的,怎样设备都不生效,没找到治理法子,但自测的话,取个英文名也没关系,有哪位大神治理了可以告诉我一下。
关于此外断言的操纵,和日志的操纵可以找此外的博客,这里列一篇以供参考
https://www.cnblogs.com/zhixie/p/12059593.html
一点小推行

创作不易,渴望可以支持下我的开源软件,及我的小工具,接待来 gitee 点星,fork ,提 bug 。
Excel 通用导入导出,支持 Excel 公式
博客地址:https://blog.csdn.net/sanri1993/article/details/100601578
gitee:https://gitee.com/sanri/sanri-excel-poi
操纵模板代码 ,从数据库天生代码 ,及一些项目中经常可以用到的小工具
博客地址:https://blog.csdn.net/sanri1993/article/details/98664034
gitee:https://gitee.com/sanri/sanri-tools-maven

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|理想论坛_专业20年的财经股票炒股论坛交流社区 - 股票论坛

GMT+8, 2020-7-3 05:56 , Processed in 0.152451 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表