idea中创建请求基本操作

文章目录

说明

首先通过###三个井号键来分开每个请求体,然后请求url和header参数是紧紧挨着的,请求参数不管是POST的body传参还是GET的parameter传参,都是要换行的,需要遵守HTTP协议规范

GET请求

http 复制代码
### GET request with a header
GET https://httpbin.org/ip
Accept: application/json

### GET request with parameter
GET https://httpbin.org/get?show_env=1
Accept: application/json

### GET request with environment variables
GET {{host}}/get?show_env={{show_env}}
Accept: application/json

### GET request with disabled redirects
# @no-redirect
GET http://httpbin.org/status/301

### GET request with dynamic variables
GET http://httpbin.org/anything?id={{$uuid}}&ts={{$timestamp}}

###

POST请求

http 复制代码
### Send POST request with json body
POST https://httpbin.org/post
Content-Type: application/json

{
  "id": 999,
  "value": "content"
}

### Send POST request with body as parameters
POST https://httpbin.org/post
Content-Type: application/x-www-form-urlencoded

id=999&value=content

### Send a form with the text and file fields
POST https://httpbin.org/post
Content-Type: multipart/form-data; boundary=WebAppBoundary

--WebAppBoundary
Content-Disposition: form-data; name="element-name"
Content-Type: text/plain

Name
--WebAppBoundary
Content-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 body
POST https://httpbin.org/post
Content-Type: application/json

{
  "id": {{$uuid}},
  "price": {{$randomInt}},
  "ts": {{$timestamp}},
  "value": "content"
}

###

效果

点击项目目录,右键操作,new,Http Request

hello.http

http 复制代码
GET http://localhost:8080/validSingleColumn
Accept: application/json

RUN 返回信息

json 复制代码
GET http://localhost:8080/validSingleColumn

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 06:28:03 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "操作成功",
  "code": 200,
  "data": [
    "1",
    "2",
    "3",
    "4",
    "5"
  ]
}

Response code: 200; Time: 49ms; Content length: 54 bytes

在resource下面新建一个包,如rest、http之类的,名字随便取,在这里面我们来创建我们的请求。

创建GET请求

没有参数

http 复制代码
GET http://localhost:8080/hello
Accept: application/json

controller

java 复制代码
 @GetMapping(value = "hello")
    public AjaxResult hello(){
        return AjaxResult.success("hello");
    }

响应信息

json 复制代码
GET http://localhost:8080/hello

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 06:41:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "hello",
  "code": 200
}

Response code: 200; Time: 279ms; Content length: 26 bytes

带有参数

第一种形式:使用@RequestParam单个参数

java 复制代码
    @GetMapping(value = "/getFirst")
    public AjaxResult getFirst(@RequestParam String id) {
        log.info("id:【{}】", id);
        return AjaxResult.success("使用@RequestParam单个参数");
    }
http 复制代码
GET http://localhost:8081/hello/getFirst?id=1
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getFirst?id=1

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 06:59:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "使用@RequestParam单个参数",
  "code": 200
}

Response code: 200; Time: 62ms; Content length: 40 bytes

第二种方式:不使用@RequestParam单个参数

java 复制代码
@GetMapping(value = "getSecond")
public AjaxResult getSecond(String id) {
    log.info("id:【{}】", id);
    return AjaxResult.success("不使用@RequestParam单个参数。");
}
http 复制代码
GET http://localhost:8081/hello/getSecond?id=2
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getSecond?id=2

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 07:01:52 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "不使用@RequestParam单个参数。",
  "code": 200
}

Response code: 200; Time: 14ms; Content length: 42 bytes

第三种方式:多个基础参数

java 复制代码
    @GetMapping(value = "getThird")
    public AjaxResult getThird(String id, int age) {
        log.info("id:【{}】,age:【{}】", id, age);
        return AjaxResult.success("多个参数");
    }
http 复制代码
GET http://localhost:8081/hello/getThird/?id=18&age=16
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getThird/?id=18&age=16

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 07:05:24 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "多个参数",
  "code": 200
}

Response code: 200; Time: 15ms; Content length: 25 bytes

第四种方式:多个参数使用@RequestParam

java 复制代码
    @GetMapping(value = "getFourth")
    public AjaxResult getFourth(@RequestParam String id, @RequestParam int age) {
        log.info("id:【{}】,age:【{}】", id, age);
        return AjaxResult.success("多个参数使用@RequestParam");
    }
http 复制代码
GET http://localhost:8081/hello/getFourth?id=18&age=16
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getFourth?id=18&age=16

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 07:07:19 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "多个参数使用@RequestParam",
  "code": 200
}

Response code: 200; Time: 20ms; Content length: 40 bytes

第五种方式:map入参使用@RequestParam,其实加不加一样效果

java 复制代码
    @GetMapping(value = "getFifth")
    public AjaxResult getFifth(@RequestParam Map map) {
        log.info("map:【{}】", map);
        return AjaxResult.success("map使用@RequestParam");
    }
http 复制代码
GET http://localhost:8081/hello/getFifth?id=1&age=10
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getFifth?id=1&age=10

HTTP/1.1 200 
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 07:13:03 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "map使用@RequestParam",
  "code": 200
}

Response code: 200; Time: 13ms; Content length: 39 bytes

第六种:实体类使用

java 复制代码
    @GetMapping(value = "getSeven")
    public AjaxResult getSeven(User user) {
        log.info("user:【{}】", user);
        return AjaxResult.success("实体类");
    }
http 复制代码
GET http://localhost:8081/hello/getSeven?id=10&age=10&userName=pmb
Accept: application/json
json 复制代码
GET http://localhost:8081/hello/getSeven?id=10&age=10&userName=pmb

HTTP/1.1 200 
X-xr-bookmark: 1b995c1b-c0c7-4b3b-8d9b-9c0c008f7b32
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 27 Jul 2023 07:30:10 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{
  "msg": "实体类",
  "code": 200
}

Response code: 200; Time: 75ms; Content length: 24 bytes

总结:接收一个参数(String、Long),接收一个集合(Map)

GET 请求 测试发现 使用 @RequestParm 可以接收到参数

GET 请求 测试发现 不加 @RequestParm 也可以接收到参数

接受一个对象(user)

GET 请求 测试发现 使用 @RequestParm 接收对象 报错 接收不到

GET 请求 测试发现 不加 @RequestParm 接收对象 可以接收

总结:

GET 请求 当使用 @RequestParm 注解 和 不加注解时,只能接收到 params 携带的参数 ,参数放在 请求头 和请求体中均接受不到。

带有环境变量

带有动态参数

接收一个参数(String、Long、Integer)@RequestParm 可以。

接收一个集合(Map)@RequestParm 和 @RequestBody 均可以。

接收一个对象(user) @RequestBody 均可以。

复制代码
总结:
   POST请求 当使用 @RequestParm 注解 和 不加注解时,
   只能接收到 params 和请求体xxx格式携带的参数,加注解无法接收到对象参数。
相关推荐
DokiDoki之父10 分钟前
多线程—飞机大战排行榜功能(2.0版本)
android·java·开发语言
高山上有一只小老虎16 分钟前
走方格的方案数
java·算法
whatever who cares17 分钟前
Java 中表示数据集的常用集合类
java·开发语言
JavaArchJourney1 小时前
TreeMap 源码分析
java
whitepure1 小时前
万字详解Java中的IO及序列化
java·后端
还梦呦1 小时前
2025年09月计算机二级Java选择题每日一练——第一期
java·开发语言
与火星的孩子对话1 小时前
Unity高级开发:反射原理深入解析与实践指南 C#
java·unity·c#·游戏引擎·lucene·反射
花开富贵ii2 小时前
代码随想录算法训练营四十六天|图论part04
java·数据结构·算法·图论
Miraitowa_cheems2 小时前
LeetCode算法日记 - Day 15: 和为 K 的子数组、和可被 K 整除的子数组
java·数据结构·算法·leetcode·职场和发展·哈希算法
答题卡上的情书2 小时前
java第一个接口
java·开发语言