日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

IDEA中的HTTP Client使用教程

瀏覽:247日期:2024-07-22 15:14:11
介紹

IDEA RESTful WebServices是一個類似jmeter,postman的工具。可以使用純文本編輯。

官網介紹地址:https://www.jetbrains.com/help/idea/restful-webservices.html

該工具是idea的一個組件,在Tools->Http client下;當然goland也是相同;低版本是Test Restful WebService,新版本的idea已經提示改功能廢棄,建議使用new HTTP Client也就是我們此教程要介紹的工具;

示例:

創建demo1.http文件

GET https://www.baidu.com

###

點擊右側運行即可查看到結果

HTTP請求中使用變量

要在請求中提供變量,請將其括在雙花括號中,如 {{variable}} 。變量名稱只能包含字母,數字,下 劃線符號 _ 或連字符 - 。

預定義的動態變量

每次您運行請求時,動態變量都會生成一個值: $uuid :生成通用的唯一標識符(UUID-v4) $timestamp :生成當前的UNIX時間戳 $randomInt :生成介于0到1000之間的隨機整數。

GET http://localhost/api/get?id={{$uuid}}創建環境變量

在項目內部,創建以下文件:

在rest-client.env.json(或http-client.env.json)是包含常見的變量,其目的是要與你的項目一起 分發的常規文件。 在rest-client.private.env.json(或http-client.private.env.json)是一個 私人 的文件可能包括密 碼,令牌,證書和其他敏感信息。默認情況下,此文件被添加到VCS忽略文件列表中。在httpclient.private.env.json文件中指定的變量的值將覆蓋環境文件中的值。

{ 'dev': { 'host': 'http://127.0.0.1:80', 'name': 'zhangsan' }, 'prod': { 'host': 'http://127.0.0.1:80', 'name':'lisi' }}

調用示例

GET http://{{host}}/api/get?name={{name}}

腳本設置環境變量

//設置環境變量> {%client.global.set('token', response.body.token);%}腳本檢測

可以對返回值進行打印,斷言;

# 登陸POST http://{{host}}/system/loginContent-Type: application/x-www-form-urlencodedusername=admin&password=123456> {% client.log(JSON.stringify(response.body));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 + '’');});client.test('Request code success', function() {client.assert(response.body.code === 0, 'Response code is not 0');client.global.set('token', response.body.data);});%}###類型介紹 client

client.global

set(varName, varValue) // 設置全局變量 get(varName) // 獲取全局變量 isEmpty // 檢查 global 是否為空 clear(varName) // 刪除變量 clearAll // 刪除所有變量 client.test(testName, func) // 創建一個名稱為 testName 的測試 client.assert(condition, message) // 校驗條件 condition 是否成立,否則拋出異常 message client.log(text) // 打印日志 response response.body // 字符串 或 JSON (如果 content-type 為 application/json .) response.headers

valueOf(headerName) // 返回第一個匹配 headerName 的值,如果沒有匹配的返回 nullvaluesOf(headerName) // 返回所有匹配 headerName 的值的數組,如果沒有匹配的返回空數組

response.status // Http 狀態碼,如: 200 / 400 response.contentType

mimeType // 返回 MIME 類型,如: text/plain , text/xml , application/json .charset // 返回編碼 UTF-8 等

示例test.http

#### GET請求GET http://{{host}}/api/get?name={{name}}#### POST請求POST http://{{host}}/api/post/kvContent-Type: application/x-www-form-urlencodedname=zhangsan&age=11#### POST請求POST http://{{host}}/api/post/jsonContent-Type: application/jsonreferer: https://goframe.org/cookie: name=zhangsan; age=11{'name':'zhangsan','age':11}###

test2.http

#### 未登錄POST http://{{host}}/system/user/info> {% client.log(JSON.stringify(response.body));client.test('Request executed successfully', function() {client.assert(response.status === 404, '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 + '’');});client.test('Request code fail', function() {client.assert(response.body.code === -1, 'Response code is not -1');});%}#### 登陸POST http://{{host}}/system/loginContent-Type: application/x-www-form-urlencodedusername=admin&password=123456> {% client.log(JSON.stringify(response.body));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 + '’');});client.test('Request code success', function() {client.assert(response.body.code === 0, 'Response code is not 0');client.global.set('token', response.body.data);});%}#### 登陸后訪問用戶信息POST http://{{host}}/system/user/infotoken: {{token}}> {% client.log(JSON.stringify(response.body));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 + '’');});client.test('Request code success', function() {client.assert(response.body.code === 0, 'Response code is not 0');});%}#### 登陸后訪問用戶年齡POST http://{{host}}/system/user/agetoken: {{token}}> {% client.log(JSON.stringify(response.body));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 + '’');});client.test('Request code success', function() {client.assert(response.body.code === 0, 'Response code is not 0');});%}###

http-client.env.json

{ 'dev': { 'host': 'http://127.0.0.1:80', 'name': 'zhangsan' }, 'prod': { 'host': 'http://127.0.0.1:80', 'name':'lisi' }}

main.go

package mainimport ('github.com/gogf/gf/frame/g''github.com/gogf/gf/net/ghttp''github.com/gogf/gf/util/guuid')var token stringfunc main() {s := g.Server()group := s.Group('/api')// 默認路徑// GET帶參數group.GET('/get', func(r *ghttp.Request) {r.Response.Writeln('Hello World!')r.Response.Writeln('name:', r.GetString('name'))})// POST KVgroup.POST('/post/kv', func(r *ghttp.Request) {r.Response.Writeln('func:test')r.Response.Writeln('name:', r.GetString('name'))r.Response.Writeln('age:', r.GetInt('age'))})// POST JSONgroup.POST('/post/json', func(r *ghttp.Request) {r.Response.Writeln('func:test2')r.Response.Writeln('name:', r.GetString('name'))r.Response.Writeln('age:', r.GetString('age'))h := r.Headerr.Response.Writeln('referer:', h.Get('referer'))r.Response.Writeln('cookie:', h.Get('cookie'))r.Response.Writeln(r.Cookie.Map())})// 模擬登陸system := s.Group('/system')// 登陸接口system.POST('/login', func(r *ghttp.Request) {if 'admin' == r.GetString('username') &&'123456' == r.GetString('password') {token = guuid.New().String()r.Response.WriteJson(g.Map{'code': 0,'data': token,})r.Exit()}r.Response.WriteJson(g.Map{'code': -1,'data': '',})})// 獲取用戶信息system.POST('/user/info', func(r *ghttp.Request) {if token != r.Header.Get('token') || token == '' {r.Response.WriteJson(g.Map{'code': -1,'data': '',})r.Exit()}// 返回用戶信息r.Response.WriteJson(g.Map{'code': 0,'data': 'zhangsan',})})// 獲取用戶年齡system.POST('/user/age', func(r *ghttp.Request) {if token != r.Header.Get('token') || token == '' {r.Response.WriteJson(g.Map{'code': -1,'data': '',})r.Exit()}// 返回用戶信息r.Response.WriteJson(g.Map{'code': 0,'data': 11,})})s.SetPort(80)s.Run()}

代碼地址

github:https://github.com/goflyfox/tools

gitee:https://gitee.com/goflyfox/tools

教程視頻

bilibili教程地址:https://www.bilibili.com/video/BV12V411f7ab/

到此這篇關于IDEA中的HTTP Client使用教程的文章就介紹到這了,更多相關IDEA HTTP Client使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: IDEA
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久性天堂网| 蜜桃视频一区二区| 国产传媒av在线| 九一成人免费视频| 三级欧美在线一区| 91精品国产自产观看在线| 欧美国产日韩电影| 日本免费一区二区三区四区| 国产精品女主播一区二区三区| 日本在线不卡视频一二三区| 精品国产乱码久久久| 欧美/亚洲一区| 三级欧美在线一区| 久久精品国产久精国产| 久久久久久久久久久9不雅视频| 麻豆精品网站| 欧美激情精品| 亚洲精品一二三区区别| 久久精品99国产精品日本| 色爱av综合网| 日韩激情精品| 久久中文字幕二区| 欧美一区二区三区免费看| 日本欧美不卡| 国产毛片久久久| 精品一区欧美| 国产精品久久久久久久免费软件| 亚洲不卡系列| 国产精品色婷婷在线观看| 欧美精品一卡| 黄色欧美在线| 视频一区中文字幕精品| 日韩欧美一区二区三区免费看| 亚洲另类黄色| 久久久久久网| 日韩精品免费视频人成| 久久久久久久久丰满| 国产精品羞羞答答在线观看| 亚洲一区亚洲| 亚洲天堂资源| 国产精品一线天粉嫩av| 亚洲综合精品| 国产91在线精品| 日韩高清电影免费| 一区在线视频观看| a国产在线视频| 亚洲尤物av| 91精品啪在线观看国产18| 久久精品九色| 日韩一区二区三区四区五区| 99久久夜色精品国产亚洲狼| 国产黄色一区| 一二三区精品| 影音国产精品| 日韩黄色大片| 国产在线不卡一区二区三区| 日本成人在线网站| 久久久久中文| 精品国产乱码久久久久久1区2匹| 男人的天堂亚洲一区| 久久精品国内一区二区三区水蜜桃| 美女视频黄 久久| 奇米亚洲欧美| 中文无码日韩欧| 女人天堂亚洲aⅴ在线观看| 日韩在线观看一区| 欧美激情麻豆| 国产伦精品一区二区三区在线播放| 亚洲一区黄色| 蜜桃tv一区二区三区| 中文字幕在线高清| 久久亚州av| 日韩成人一级| 伊人精品久久| 香蕉久久久久久久av网站| 国产一区丝袜| а√天堂中文在线资源8| 免费看久久久| 国产精品亚洲欧美日韩一区在线| 日本一区免费网站| 99国产精品久久久久久久| 欧美日韩一二三四| se01亚洲视频| 日韩三区在线| 欧洲av一区二区| 欧美成人a交片免费看| 精品72久久久久中文字幕| 欧美日韩91| 欧美日韩午夜电影网| 日韩高清不卡一区二区| 亚洲91网站| 97久久超碰| 国产精品亚洲欧美日韩一区在线| 国产亚洲久久| 国产精品一区毛片| 国产精品密蕾丝视频下载| 国产精品免费99久久久| 国产精品一区二区99| 国产精品v一区二区三区| 国产极品嫩模在线观看91精品| 国产精品久久久亚洲一区| 欧美激情视频一区二区三区免费| 国产精品麻豆成人av电影艾秋| 国产精品传媒麻豆hd| 久久久国产精品入口麻豆| 成人国产精品久久| 日本不卡免费高清视频在线| 91看片一区| 91精品99| 亚洲精品麻豆| 国产欧美欧美| 精品一区二区三区四区五区| 日韩av专区| 久久要要av| 玖玖玖国产精品| 欧美有码在线| 日本一区二区免费高清| 亚洲成人av观看| 女人天堂亚洲aⅴ在线观看| 蜜臀久久99精品久久久久久9| 五月激激激综合网色播 | 亚洲视频www| 中文字幕日韩亚洲| 国产精品第一| 亚洲91视频| 亚洲一区二区三区四区电影| 国产亚洲观看| 六月婷婷综合| 91久久中文| 欧美视频久久| 日韩国产欧美一区二区| 午夜精品影院| 日本va欧美va欧美va精品| 国产一区二区三区国产精品| 欧美日韩国产免费观看视频| 亚洲精品第一| 精品国产中文字幕第一页| 欧美91精品| 欧美一区精品| 日韩欧美另类一区二区| 免费观看在线色综合| 国产精品宾馆| 欧美亚洲精品在线| 日韩激情啪啪| 三级在线看中文字幕完整版| 玖玖玖国产精品| 国产黄色精品| 黄色亚洲大片免费在线观看| 国产精品视频3p| 欧洲毛片在线视频免费观看| 日本特黄久久久高潮| 日韩高清中文字幕一区二区| 亚洲精品婷婷| 欧美日韩免费观看视频| 日韩综合小视频| 欧美三区四区| 欧美一区二区三区久久精品| 久久中文字幕av一区二区不卡| 日本综合视频| 欧美日韩视频免费观看| 日韩va亚洲va欧美va久久| sm久久捆绑调教精品一区| 亚洲欧美网站在线观看| 日韩在线免费| 国产精品一页| 日韩亚洲在线| 精品视频一区二区三区在线观看| 中文亚洲免费| 成人在线视频区| 日韩在线视频一区二区三区| 日韩久久精品| 日韩av成人高清| 国产一区二区三区自拍| 久久不卡日韩美女| 蜜桃视频一区二区三区| 亚洲成av在线| 国产欧美一区二区三区精品观看| 欧美不卡高清| 精品视频在线你懂得| 日本一区二区中文字幕| 国产综合婷婷| 国产一区二区三区四区五区传媒| 久久最新视频| 成人午夜国产| 久久精品亚洲| 日韩黄色在线观看| 夜夜嗨一区二区| 国产 日韩 欧美一区| 国产精品久久久久9999高清| 免费不卡在线观看| 精品一区在线| 国产一区不卡| 国产美女久久| 日本在线观看不卡视频| 好看的av在线不卡观看| 九色porny丨国产首页在线| 精品亚洲成人| 国产乱码精品一区二区亚洲| 亚洲日本国产| 丝袜脚交一区二区|