idea中创建请求基本操作

说明

在这里插入图片描述

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

GET请求

### 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请求

### 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

GET http://localhost:8080/validSingleColumn
Accept: application/json

RUN 返回信息

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请求

没有参数

GET http://localhost:8080/hello
Accept: application/json

controller

 @GetMapping(value = "hello")
    public AjaxResult hello(){
        return AjaxResult.success("hello");
    }

响应信息

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单个参数

    @GetMapping(value = "/getFirst")
    public AjaxResult getFirst(@RequestParam String id) {
        log.info("id:【{}】", id);
        return AjaxResult.success("使用@RequestParam单个参数");
    }
GET http://localhost:8081/hello/getFirst?id=1
Accept: application/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单个参数

@GetMapping(value = "getSecond")
public AjaxResult getSecond(String id) {
    log.info("id:【{}】", id);
    return AjaxResult.success("不使用@RequestParam单个参数。");
}
GET http://localhost:8081/hello/getSecond?id=2
Accept: application/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

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

    @GetMapping(value = "getThird")
    public AjaxResult getThird(String id, int age) {
        log.info("id:【{}】,age:【{}】", id, age);
        return AjaxResult.success("多个参数");
    }
GET http://localhost:8081/hello/getThird/?id=18&age=16
Accept: application/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

    @GetMapping(value = "getFourth")
    public AjaxResult getFourth(@RequestParam String id, @RequestParam int age) {
        log.info("id:【{}】,age:【{}】", id, age);
        return AjaxResult.success("多个参数使用@RequestParam");
    }
GET http://localhost:8081/hello/getFourth?id=18&age=16
Accept: application/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,其实加不加一样效果

    @GetMapping(value = "getFifth")
    public AjaxResult getFifth(@RequestParam Map map) {
        log.info("map:【{}】", map);
        return AjaxResult.success("map使用@RequestParam");
    }
GET http://localhost:8081/hello/getFifth?id=1&age=10
Accept: application/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

第六种:实体类使用

    @GetMapping(value = "getSeven")
    public AjaxResult getSeven(User user) {
        log.info("user:【{}】", user);
        return AjaxResult.success("实体类");
    }
GET http://localhost:8081/hello/getSeven?id=10&age=10&userName=pmb
Accept: application/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 携带的参数 ,参数放在 请求头 和请求体中均接受不到。

带有环境变量

带有token信息

###
POST http://localhost:80/api/item
Content-Type: application/json
Authorization: Bearer {{auth_token}}


###


创建post请求之上传文件

### Send a form with the text and file fields
POST http://localhost:8084/user/uploadFile
Content-Type: multipart/form-data; boundary=WebAppBoundary

--WebAppBoundary
Content-Disposition: form-data; name="filename"; filename="first.xlsx"
Content-Type: multipart/form-data;

< C:\Users\PMB\Desktop\first.xlsx
--WebAppBoundary--

在这里插入图片描述
在这里插入图片描述

接收一个参数(String、Long、Integer)@RequestParm 可以。
接收一个集合(Map)@RequestParm 和 @RequestBody 均可以。
接收一个对象(user) @RequestBody 均可以。

总结:
   POST请求 当使用 @RequestParm 注解 和 不加注解时,
   只能接收到 params 和请求体xxx格式携带的参数,加注解无法接收到对象参数。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在某些开发环境或集成开发工具(如Eclipse),可能没有直接创建Servlet的选项。这是因为Servlet是Java编程的一部分,与具体的开发环境无关。 要创建一个Java Servlet,可以按照以下步骤操作: 1. 首先,创建一个Java项目。可以选择使用命令行工具或开发环境的“新项目”选项来创建项目。 2. 在项目创建一个新的Java类。这个类将充当Servlet的实现。 3. 在类扩展javax.servlet.http.HttpServlet类。这将使该类成为一个Servlet类。 4. 实现必要的doGet()或doPost()方法,以响应来自客户端的请求。 5. 在web.xml文件配置Servlet。在web.xml可以指定Servlet的映射路径、URL模式和其他配置。 6. 将项目部署到服务器上。这通常涉及将项目打包成WAR文件并将其部署到Web服务器上。 以上是一种常见的创建Servlet的方法。然而,具体的步骤可能因开发环境或工具而有所不同。在某些开发环境,可以直接使用向导或可视化界面来创建Servlet,从而简化这个过程。 总之,尽管某些开发环境可能没有明确的“创建Servlet”的选项,但可以通过创建Java类并扩展HttpServlet来实现自己的Servlet。 ### 回答2: 在几乎所有的开发工具,我们都可以选择创建Java Servlet的选项。然而,也有一些开发工具或环境可能没有提供这个选项。这种情况可能发生在以下几种情况下: 1. 开发工具的版本较旧:一些较旧的开发工具可能不支持Servlet开发或没有提供创建Servlet的选项。这可能是因为Servlet的概念和技术是在Java的发展过程逐渐引入并成为标准的,所以旧版本的开发工具可能没有跟上这个发展。 2. 开发工具不适用于Web开发:有些开发工具可能专注于特定类型的开发,如桌面应用程序开发或移动应用程序开发,而不是Web开发。因此,它们可能没有提供创建Servlet的选项。 3. 开发工具定制或插件:有些开发工具提供了定制或插件机制,可以根据需要添加或扩展功能。如果没有提供Servlet的选项,可能是因为未正确配置或安装相应的定制或插件,或者根本没有这样的定制或插件可用。 总的来说,如果开发工具没有提供创建Servlet的选项,我们仍然可以使用其他方式来编写和运行Servlet。我们可以手动创建Servlet类和配置Servlet容器,例如使用Apache Tomcat或Jetty等。另外,如果我们正在使用集成开发环境(IDE),我们可以使用其他工具或插件来扩展或添加Servlet的支持。 ### 回答3: 在"创建servlet"选项没有出现的情况下,可以通过以下几种方式来解决问题: 1. 检查IDE或编辑器版本:确保你使用的IDE或编辑器是支持创建servlet的。一些较旧的或基本的编辑器可能不具备创建servlet的功能。 2. 安装适当的插件或扩展:如果你确定你的IDE或编辑器应该支持servlet创建,但没有该选项时,你可以尝试安装相关的插件或扩展来增加该功能。 3. 导入现有的servlet项目:如果你已经有一个已经创建的servlet项目,你可以选择将该项目导入到你的IDE,这样你就能够使用servlet功能。 4. 检查项目类型:在创建新项目时,确保选择了适当的项目类型,比如Java Web或Dynamic Web Project。这些项目类型通常包含了对servlet的支持。 5. 手动创建servlet类:即使没有创建servlet的选项,你仍然可以手动创建一个servlet类文件。你可以在项目创建一个Java类,并确保该类扩展自javax.servlet.http.HttpServlet类,并实现相应的servlet方法。 需要注意的是,以上解决方法可能因为具体的工具和环境而有所不同。所以在尝试上述方法之前,最好先查找文档或在线资源以获取更具体的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值