首页 > 其他分享 >请求响应~请求

请求响应~请求

时间:2024-07-09 12:56:15浏览次数:15  
标签:return 请求 age 响应 String 参数 public name

介绍

        新手程序员一枚,渴望成为大神,来点关注来点赞,给我介绍几个大神也行,球球了。


        主要记录自己的学习过程,将之前的笔记进行整理并分享一下,有错误请指出,谢谢各位大佬爷们的观看。

        下面开始分享我的笔记


概述

请求

接口测试工具

Postman

网址 https://www.postman.com/

功能
  • 网页调试

  • 发送网页HTTP请求

  • Chrome插件

安装
  • 双击

  • 需要注册

使用

简单参数

  • 原始方式

      在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取

    • 新建类RequestController

package com.testpeople.controller;


//测试请求参数接收

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@RestController
public class RequestController {

    //原始方式
    @RequestMapping("/simpleParam")
    public String simpleParam(HttpServletRequest request){
        //获取请求参数
        String name = request.getParameter("name");
        String age = request.getParameter("age");
        int ageInt = Integer.parseInt(age);
        System.out.println("name:"+name+",age"+ageInt);
        return "ok";

    }



}    
  • 通过Postman模拟请求

  • 后端显示

  • SpringBoot方式

    • 简单参数:参数名与形式参数名相同,无需自动转化数据类型

    • //springboot方式
      @RequestMapping("/simpleParam")
      public String simpleParam(String name,Integer age){
          System.out.println("name:"+name+",age"+age);
          return "ok";
      
      }
    • 注意:如果参数名称对应不上可以使用下面的方式

    • //使用@RequestParam完成映射
      
      //参数不对应时
      @RequestMapping("/simpleParam")
      public String simpleParam(@RequestParam(name = "name") String userName, Integer age){
          System.out.println("name:"+userName+",age:"+age);
          return "ok";
      
      }

//参数不对应时
@RequestMapping("/simpleParam")
public String simpleParam(@RequestParam(name = "name",required = false) String userName, Integer age){
    System.out.println("name:"+userName+",age:"+age);
    return "ok";

}
  • 效果

  • get类型

  • post类型

实体参数

  • 简单实体对象

      请求参数名与形参对象属性名相同,定义POJO接受。

      将参数封装到实体类当中

    • postman配置

  • 后端

    • 实体类

package com.testpeople.pojo;

public class User {

    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
  • 接受请求方法
//实体参数
@RequestMapping("/simplePojo")
public String simplePojo(User user){
    System.out.println(user);
    return "ok";
}
  • 复杂实体参数

        请求参数名与形式对象属性名相同,按照对象层次结构关系即可接收嵌套POJO属性参数

  • 后端

    • 实体类

package com.testpeople.pojo;

public class Address {
    private String province;
    private String city;

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    @Override
    public String toString() {
        return "Address{" +
                "province='" + province + '\'' +
                ", city='" + city + '\'' +
                '}';
    }
}
  • 接收请求方法

//复杂实体参数
@RequestMapping("/complexPojo")
public int complexPojo(User user){
    System.out.println(user);
    return 0;
}
  • postman

数组集合参数

  • 请求参数名与形式参数名称相同且请求参数为多个,定义数据类型形参即可接收参数。

使用场景
  • 复选框组件时

数组接收
  • postman配置

  • 后端

//数组参数
//接收请求方法
@RequestMapping("/arrayParam")
public String arrayParam(String [] hobby){
    System.out.println(Arrays.toString(hobby));
    return "ok";
}

集合接收
  • postman配置

  • 后端

//使用集合接收
//默认使用数组接收,如果改成list,需要在形参名前添加@RequestParam

@RequestMapping("/listParam")
public String listParam(@RequestParam List<String> learn){
    System.out.println(learn.toString());
    return "ok";
}

 

日期参数

  • 使用@DataTimeFormat注解完成日期参数格式转换

  • postman配置

  • 后端

//时间参数接收
@RequestMapping("/dateParam")
public String dateParam(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime updateTime){
    System.out.println(updateTime.toString());
    return "ok";
}


//注意日期的格式
  • 效果

Json参数

  • json数据键名与形参对象属性名相同,定义Pojo类型形参即可接收参数,需要使用@RequestBody注解标识。

  • postman配置

    • Json类型的参数需要配置到Body中

  • 后端

    • 实体类

package com.testpeople.pojo;

public class Position {
    private String work;
    private String sleep;

    public String getWork() {
        return work;
    }

    public void setWork(String work) {
        this.work = work;
    }

    public String getSleep() {
        return sleep;
    }

    public void setSleep(String sleep) {
        this.sleep = sleep;
    }

    @Override
    public String toString() {
        return "Position{" +
                "work='" + work + '\'' +
                ", sleep='" + sleep + '\'' +
                '}';
    }
}
package com.testpeople.pojo;

import java.util.Arrays;

public class WorkMan {

    private String name;
    private Integer age;
    private String [] learn;
    private Position position;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String[] getLearn() {
        return learn;
    }

    public void setLearn(String[] learn) {
        this.learn = learn;
    }

    public Position getPosition() {
        return position;
    }

    public void setPosition(Position position) {
        this.position = position;
    }

    @Override
    public String toString() {
        return "WorkMan{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", learn=" + Arrays.toString(learn) +
                ", position=" + position +
                '}';
    }
}
  • 接收请求方法

//json类型参数接收
@RequestMapping("/jsonParam")
public String jsonParam(@RequestBody WorkMan man){
    System.out.println(man.toString());
    return "ok";
}

//注意参数前需要添加注解
  • 效果

路径参数

单个路径参数
  • 通过请求URL直接传递参数,使用{。。。}来标识该路径参数,需要使用@PathVariable获取路径参数。

  • postman配置

  • 后端

//路径参数接收
@RequestMapping("/path/{id}")
public String pathParam(@PathVariable Integer id){
    System.out.println(id);
    return "ok";
}

//参数需要添加注解@PathVariable
多个路径参数
  • postman配置

  • 后端

//多个路径参数
@RequestMapping("/path/{id}/{name}")
public String pathParam(@PathVariable Integer id,@PathVariable String name){
    System.out.println(id+": "+name);
    return "ok";
}
//注意每个参数都要写注解
  • 效果

总结


以上是学习的第七弹笔记,也是后端开始的第三弹笔记,感兴趣的关注一手,后面会慢慢更新笔记。

项目位置!!!!!

https://gitee.com/zsjnew/admin_web_project.git

标签:return,请求,age,响应,String,参数,public,name
From: https://blog.csdn.net/m0_61801450/article/details/140292565

相关文章

  • Linux环境中应急响应与排查溯源思路总结
    0前言在应急响应和溯源时,经常会遇见Linux系统环境,然后小编经常只记得思路忘记部分命令,下面是小编对Linux环境下应急响应和排查的思路总结。本文来源无问社区(wwlib.cn)更多详细内容可前往观看http://www.wwlib.cn/index.php/artread/artid/2729.html1目录文件分析1.1系统用......
  • 几行代码,优雅的避免接口重复请求!同事都说好!
    背景简介我们日常开发中,经常会遇到点击一个「按钮」或者进行「搜索」时,请求接口的需求。如果我们不做优化,连续点击「按钮」或者进行「搜索」,接口会重复请求。❝首先,这会导致性能浪费!最重要的,如果接口响应比较慢,此时,我们在做其他操作会有一系列bug!❞那么,我们该如何规避这种......
  • 什么是并发连接数、请求数、并发用户数?
    概念并发连接数-SBC(SimultaneousBrowserConnections)并发连接数指的是客户端向服务器发起请求,并建立了TCP连接。每秒钟服务器链接的总TCP数量,就是并发连接数。请求数-QPS(QueryPerSecond)/RPS(RequestPerSecond)请求数有2个缩写,可以叫QPS也可以叫RPS。单位是每秒多少请求。Qu......
  • Linux系统运维命令:查看http的并发请求数及其TCP连接状态(使用netstat结合awk和sort,组合
    一、需求二、解决方法(一)解决思路(二)命令三、实例演示和命令解释(一)实例演示(二)命令解释四、扩展一、需求用户访问一个视频监控平台的web服务特别频繁,据客户说,有大概2000个用户,要随机访问这个视频监控平台,这样对带宽的要求非常大。因此,他们需要查看到底有多少个http的并......
  • 计及需求响应的改进灰狼优化算法求解风、光、柴、储容量优化配置(Matlab代码实现)
     ......
  • Linux应急响应——知攻善防应急靶场-Linux(1)
    目录查看history历史指令查看开机自启动项异常连接和端口异常进程定时任务异常服务日志分析账户排查总结靶场出处是知攻善防Linux应急响应靶机1前景需要:小王急匆匆地找到小张,小王说"李哥,我dev服务器被黑了",快救救我!!挑战内容:黑客的IP地址遗留下的三个flag开机后桌面找到......
  • 前端面试题27(在实际项目中,如何有效地利用Vue3的响应式系统提高性能?)
    在实际项目中,有效利用Vue3的响应式系统提高性能主要涉及以下几个关键点:1.合理使用reactive和refreactive:用于将复杂的数据结构(如对象或数组)转换成响应式版本。确保只将需要实时更新的数据结构声明为响应式,避免不必要的全局响应化,以减少性能开销。ref:用于创建基本类型......
  • 安防监控/视频汇聚平台EasyCVR设备录像回看请求播放时间和实际时间对不上,是什么原因?
    安防监控EasyCVR视频汇聚平台可提供多协议(RTSP/RTMP/国标GB28181/GAT1400/海康Ehome/大华/海康/宇视等SDK)的设备接入、音视频采集、视频转码、处理、分发等服务,系统具备实时监控、云端录像、回看、告警、平台级联以及多视频流格式分发等视频能力。有用户反馈,视频汇聚平台EasyCVR......
  • 模电基础 - 放大电路的频率响应
    目录一.简介二. 频率响应的基本概念三. 波特图四. 晶体管的高频等效模型五. 场效应管的高频等效模型六. 单管放大电路的频率响应七.多级放大电路的频率响应八. 频率响应与阶跃响应一.简介放大电路的频率响应是指在输入不同频率的正弦信号时,电路的放大倍数......
  • 新知识get,vue3是如何实现在style中使用响应式变量?
    前言vue2的时候想必大家有遇到需要在style模块中访问script模块中的响应式变量,为此我们不得不使用css变量去实现。现在vue3已经内置了这个功能啦,可以在style中使用v-bind指令绑定script模块中的响应式变量,这篇文章我们来讲讲vue是如何实现在style中使用script模块中的响应式变量......