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格式携带的参数,加注解无法接收到对象参数。
相关推荐
卑微的Coder3 小时前
Redis Set集合命令、内部编码及应用场景(详细)
java·数据库·redis
CrissChan3 小时前
Pycharm 函数注释
java·前端·pycharm
启航挨踢4 小时前
java学习电子书推荐
java
wgslucky4 小时前
Dubbo报错:module java.base does not “opens java.lang“ to unnamed module
java·开发语言·dubbo
DougLiang5 小时前
关于easyexcel动态下拉选问题处理
java·开发语言
mochensage5 小时前
C++信息学竞赛中常用函数的一般用法
java·c++·算法
计蒙不吃鱼6 小时前
一篇文章实现Android图片拼接并保存至相册
android·java·前端
小海编码日记6 小时前
Java八股-JVM & GC
java
全职计算机毕业设计6 小时前
基于Java Web的校园失物招领平台设计与实现
java·开发语言·前端
东阳马生架构6 小时前
商品中心—1.B端建品和C端缓存的技术文档
java