IDEA中的轻量级接口请求工具 | HTTP Client 新手指南
新钛云服已累计为您分享706篇技术干货
一、 简介
HTTP Client 是 IDEA 自带的一款简洁轻量级的接口调用插件,通过它,我们能在 IDEA 上开发,调试,测试 RESTful Web 服务。
二、 快速上手
1、首先要确保 HTTP Client 插件是安装启动的,默认是已安装启动的。若没有安装,在 File - Settings - Plugins 路径下进行安装:
2、可以在项目根目录下创建一个存储请求文件的文件夹,然后在里面创建HTTP Client 请求文件:
3、打开创建的文件,可以直接的点击右上角工具栏中的add request, 选择相应的请求类型即可添加,如下图所示get请求:
4、点击左边的运行按钮即可发送请求,结果如下:
三、GET相关请求示例
### GET request with a headerGET https://httpbin.org/ipAccept: application/json### GET request with parameterGET https://httpbin.org/get?show_env=1Accept: application/json### GET request with environment variablesGET {{host}}/get?show_env={{show_env}}Accept: application/json### GET request with disabled redirects# @no-redirectGET http://httpbin.org/status/301### GET request with dynamic variablesGET http://httpbin.org/anything?id={{$uuid}}&ts={{$timestamp}}###
四、POST相关请求示例
### Send POST request with json bodyPOST https://httpbin.org/postContent-Type:application/json{ "id": 999, "value": "content"}### Send POST request with body asparametersPOST https://httpbin.org/postContent-Type:application/x-www-form-urlencodedid=999&value=content### Send a form with the text and file fieldsPOST https://httpbin.org/postContent-Type:multipart/form-data;boundary=WebAppBoundary--WebAppBoundaryContent-Disposition: form-data; name="element-name"Content-Type: text/plainName--WebAppBoundaryContent-Disposition: form-data; name="data";filename="data.json"Content-Type:application/json< ./request-form-data.json--WebAppBoundary--### Send request with dynamic variables in request's bodyPOST https://httpbin.org/postContent-Type:application/json{ "id":{{$uuid}}, "price":{{$randomInt}}, "ts":{{$timestamp}}, "value": "content"}###
五、PUT相关请求示例
PUT http://localhost:8080/person/putContent-Type:application/json{"name": "name111","age": 17}
六、PATCH相关请求示例
###PATCH http://localhost:8080/person/putContent-Type:application/json{"name": "demo111","age": 17}
七、带鉴权验证的示例
###PATCH http://localhost:8080/person/putContent-Type: application/json{"name": "demo111","age": 17}七、带鉴权验证的示例### Basic authorization.GET https://httpbin.org/basic-auth/user/passwdAuthorization: Basic user passwd### Basic authorization with variables.GET https://httpbin.org/basic-auth/user/passwdAuthorization: Basic {{username}} {{password}}### Digest authorization.GET https://httpbin.org/digest-auth/realm/user/passwdAuthorization: Digest user passwd### Digest authorization with variables.GET https://httpbin.org/digest-auth/realm/user/passwdAuthorization: Digest {{username}} {{password}}### Authorization by token, part 1. Retrieve and save token.POST https://httpbin.org/postContent-Type: application/json{ "token": "my-secret-token"}> {% client.global.set("auth_token", response.body.json.token); %}### Authorization by token, part 2. Use token to authorize.GET https://httpbin.org/headersAuthorization: Bearer {{auth_token}}###
八、断言方式请求示例
### Successful test: check response status is 200GET https://httpbin.org/status/200> {%client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200");});%}### Failed test: check response status is 200GET https://httpbin.org/status/404> {%client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200");});%}### Check response status and content-typeGET https://httpbin.org/get> {%client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200");});client.test("Response content-type is json", function() { var type = response.contentType.mimeType; client.assert(type === "application/json", "Expected 'application/json' but received '" + type + "'");});%}### Check response bodyGET https://httpbin.org/get> {%client.test("Headers option exists", function() { client.assert(response.body.hasOwnProperty("headers"), "Cannot find 'headers' option in response");});%}###
推荐阅读
推荐视频
来源地址:https://blog.csdn.net/NewTyun/article/details/128030499
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341