postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

这篇具有很好参考价值的文章主要介绍了postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

postman是一种测试工具
用postman直接在其上输入参数名和参数值就行,不用区分post和get请求方法,当然java代码要改变一点,在响应注解的方法里面添加和postman中输入的参数名一样的形参

get请求:
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回
代码:注意在响应注解的方法里面新添加了形参,其就对应着上面图片中的参数名

package com.itjh.servletmvc;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
//控制器
public class sermvc {
    //请求时的访问路径
    @RequestMapping("/sav")
    //返回给浏览器的响应数据
    @ResponseBody
    public String save(String name){
        System.out.println("spring.......mvc.."+name);
        return "{'name':'zhangsan'}}";
    }
}

测试类:

package com.itjh.Config.test;

import com.itjh.Config.SpringmvcConfig;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

public class SpringmvcTest extends AbstractDispatcherServletInitializer {
    //加载springmvc容器
    @Override
    protected WebApplicationContext createServletApplicationContext() {
        AnnotationConfigWebApplicationContext context=new AnnotationConfigWebApplicationContext();
        //注册一下springmvc容器
        context.register(SpringmvcConfig.class);
        System.out.println("加载springmvc容器");
        return context;
    }
    //从前端过来的请求,被拦截,即设置哪些请求归springmvc管
    @Override
    protected String[] getServletMappings() {
        System.out.println("拦截。。。");
        return new String[]{"/"};
    }
    //加载spring容器
    @Override
    protected WebApplicationContext createRootApplicationContext() {
        return null;
    }
}

post请求:换一些地方:红圈
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回
代码:和上面的get请求一样,不用变

总结:请求并且发送给服务器参数之后,这里的代码用封装好的request获得参数,然后再用手动创建的返回方法进行显示传进来的参数

中文乱码

post请求的解决方法:添加一个过滤器,再经过过滤器时进行手动重新编码,即解码,当然,这个只对post请求管用
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

测试类:添加了一个方法,看注释

package com.itjh.test;

import com.itjh.Config.SpringConfig;
import com.itjh.Config.SpringmvcConfig;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import javax.servlet.Filter;


public class SpringmvcTest extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringmvcConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    @Override
    protected Filter[] getServletFilters() {
        //创建filter过滤器
        CharacterEncodingFilter filter=new CharacterEncodingFilter();
        //将传进来的经过TomCat编码后的东西,进行重新的UTF-8的编码,也就是解码
        //这样返回给页面的就不是乱码了,页面是UTF-8
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

各类型参数传递

普通参数,pojo,嵌套pojo,数组,集合
代码实现:

第一种(save1):Java中的参数name和请求参数username不一致时,就利用@RequestParam(“name”)
二:会根据Java中的参数创建其对象中的属性
三:
四:请求参数的参数名一致,值不同
五:按理会创建集合的属性,但是List是接口,自然没有属性,不像上面的pojo类,所以需要将传进来的参数转成数据,作为数据传给Java中的集合,要利用@RequestParam,他就有这个功能

package com.itjh.servletmvc;

import com.itjh.pojo.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Arrays;
import java.util.List;


@Controller
//控制器
public class sermvc {
    //请求时的访问路径
    @RequestMapping("/sav")
    //返回给浏览器的响应数据
    @ResponseBody
    public String save(String name){
        System.out.println("spring.......mvc.."+name);
        return "{'name':'zhangsan'}}";
    }
    @RequestMapping("/save1" )
    @ResponseBody
    //请求参数作为数据与下面注解中的参数应当一致,
    //下面注解表示请求参数name和username关联起来
    //后面的age没有指定的话,应当是默认注解@。。。。。。。("age")
    public String save1(@RequestParam("name") String username, int age){
        System.out.println("save....1....."+username+"的年龄"+age);
        return "{'name':'lisi'}";
    }
    @RequestMapping("/save2" )
    @ResponseBody
    //请求参数名应当与实体类中的属性名一致
    public String save2(User user){
        System.out.println("save....2....."+user.toString());

        return "{'name':'wangwu'}";
    }
    @RequestMapping("/save3" )
    @ResponseBody
    //请求参数名应当与实体类中的属性名一致
    public String save3(User user){
        System.out.println("save....3....."+user.toString());
        return "{'name':'liuneng'}";
    }
    @RequestMapping("/save4" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String save4(String[] name){
        System.out.println("save....4....."+Arrays.toString(name));
        return "{'name':'liuneng'}";
    }
    @RequestMapping("/save5" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String save5(@RequestParam List<String> list){
        System.out.println("save....5....."+list.toString());
        return "{'name':'liuneng'}";
    }
}

json格式传参

都需要在方法里面的参数内加@RequesetBody
json格式传参需要进行转换,则需要jar包:

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>

完整pom.xml文件:加一个阿里云的镜像文件,免得可能下载不到jar包

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>sptingmvc</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
  </dependencies>
  <repositories>
    <repository>
      <id>nexus-aliyun</id>
      <name>nexus-aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <build>
    <plugins>
      <!-- tomcat插件 -->
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
      </plugin>
    </plugins>
  </build>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>


</project>

还需要在配置类中加入注解,这样才会开启转换json:@EnableWebMvc

package com.itjh.Config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan("com.itjh.servletmvc")
@EnableWebMvc
public class SpringmvcConfig {
}

测试类:都需要加@RequesetBody,因为现在再postman中的body中传参

list底层是数组;
pojo型需要写成json格式;
list<实体类>需要数组里面加json格式;

代码:

@RequestMapping("/save6" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String JsonArraySave6(@RequestBody List<String> id){
        System.out.println("save....6....."+id.toString());
        return "{'nam':'yangjian'}";
    }
    @RequestMapping("/save7" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String JsonPojoSave7(@RequestBody User user){
        System.out.println("save7方法运行"+user);
        System.out.println("save....7.....");
        return "{'nam':'yangjian'}";
    }
    @RequestMapping("/save8" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String JsonPojoSave8(@RequestBody List<User> user){
        System.out.println("save8方法运行"+user.toString());
        System.out.println("save....8.....");
        return "{'nam':'yangjian'}";
    }

postman传参主要看保存的文件

postman:
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

日期型参数传递

根据请求数据的日期格式设置相应参数的格式:其中的pattern后面的参数不要自己起名字,按照图片上的来呦
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回
postman请求:
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

代码实现:

    @RequestMapping("/save9" )
    @ResponseBody
    //数组名应当与参数请求名一致
    public String JsondataSave9(Date date1, 
    @DateTimeFormat(pattern = "yyyy-MM-dd") Date date2,
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date date3){
        System.out.println("date:"+date1);
        System.out.println("date:"+date2);
        System.out.println("date:"+date3);
        return "{'nam':'yangjian'}";
    }

结果:

信息: 1 Spring WebApplicationInitializers detected on classpath
四月 13, 2023 4:55:49 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring DispatcherServlet 'dispatcher'
[INFO] Initializing Servlet 'dispatcher'
[INFO] Completed initialization in 717 ms
四月 13, 2023 4:55:49 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
date:Sat Dec 15 00:00:00 CST 2018
date:Mon Nov 16 00:00:00 CST 2020
date:Fri Dec 20 08:20:30 CST 2019

这个String类型传换成Date类型的底层是用了一个接口:刚才用的转换就是他的实现类做的事,他的实现类有很多,有些转化默认没有开启,就需要手动添加@EnableWebMvc
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

响应数据传回

上面返回值都是String类型,返回给postman页面的都是自定义的字符数据,而现在要真正学返回值,即返回值类型
返回类型可以是pojo类,集合等等
看代码:返回值直接写就行,加了注解@ResponseBody和导入了jar包jackson-databind之后,他会自动帮你将返回值类型转换成json类型数据返回

@RequestMapping("/save10")
    @ResponseBody
    public User jsonsave10(){
        User user=new User();
        user.setAge(12);
        user.setUsername("海皮");
        Student student=new Student();
        student.setAddress("中国");
        student.setPhone(123456);
        user.setStudent(student);
        return user;
    }
    @RequestMapping("/save11")
    @ResponseBody
    public List<User> save11(){
        List<User> list=new ArrayList<>();
        User user1=new User();
        user1.setAge(12);
        user1.setUsername("海皮");
        User user2=new User();
        user2.setAge(19);
        user2.setUsername("哈喽");
        Student student=new Student();
        student.setAddress("中国");
        student.setPhone(123456);
        user1.setStudent(student);
        user2.setStudent(student);
        list.add(user1);
        list.add(user2);
        return list;
    }

返回的数据:上面这个代码的第二个方法
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回

注解@ResponseBody对于数据的转换借助了一个接口(即类转换器,看下面的图)的实现类进行
postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回文章来源地址https://www.toymoban.com/news/detail-468599.html

到了这里,关于postman进行post、get参数传递及中文乱码和各类型参数传递和json格式传参和日期型参数传递和响应数据传回的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • http之GET请求和POST请求的传递参数的方式

    get: 情况1:接口正常返回 code,data,message ,且无需传递参数 (vu3) 情况2: 需要将参数拼接到url地址上 (vue3)   情况3 需要传递参数,query 传参 (vue3) 情况4 既有query传参也有path传参 post 情况1 接口返回的数据没有使用data包裹,这种情况一般取不到数据,我们需要用 ext

    2024年02月16日
    浏览(27)
  • 如何使用postman 进行get或post请求通俗讲解

    get请求,可以直接用浏览器拼上参数,即可进行访问,也可以通过postman访问; 1、通过浏览器:比如宿主机IP拼上参数,比如:http://10.1.1.67:55000/config   2、通过postman访问,选择get,然后输入http://10.1.1.67:55000/config,点击send   浏览器不可以,只能用postman方式,主要有几点,选

    2024年02月14日
    浏览(34)
  • Postman Post请求四种参数传递方式与Content-Type对应关系

    Postman post 请求四种数据传递类型代表的Content-Type类型: 1、form-data : 对应的Content-Type:multipart/form-data;boundary= 表示文件上传; 2、x-www-form-urlencoded:对应的Content-Type:application/x-www-form-urlencoded 表示表单提交; 3、raw:对应的Content-Type分为五类: 4、binary:对应的Content-Type:ap

    2024年02月05日
    浏览(37)
  • 如何使用postman进行参数传递以及csv数据驱动

    - 了解postman工具可以用来做什么 postman可以用来做接口测试,主要可以用来实现以下几个需求 可以快速构建我们想要发出的请求 可以保存我们已经做过的接口测试用例 可以提供响应数据比较的作用 可以把测试用例放到测试集里面去批量的执行,指定我们执行的次数,进行数

    2023年04月11日
    浏览(38)
  • Postman+Java springboot演示 get post put delete请求并携带(路径 路径问号后 json 表单)参数形式

    我们先创建一个java的springboot工程 在项目中 找到启动类的位置目录 在项目创建一个类 叫 user 我是想将 user 当做一个属性类的 按规范来讲 我们可以创建一个entity包 然后在下面去创建属性类 但这里 我们不想搞那么麻烦了 毕竟只是练习一下 然后 user参考代码如下 这里 只是定

    2024年02月06日
    浏览(34)
  • 使用PostMan工具进行接口测试时传递Map类型参数的方法

    Step 1: 设置Header Step 2: 设置参数体 以json格式写好数据 Step 3:Controller层方法体参数设置 测试结果:

    2024年02月16日
    浏览(41)
  • Unity 启动时带参数,网页后端进行数据交互 UnityWebRequest ,Post,Get,Delete

    启动传参数可以参考这篇文章: 浏览器调用本地exe(应用程序)方法 Unity准备工作 需要用到这个API 官方解释:返回包含当前进程的命令行参数的字符串数组 返回值是一个string[],当Length1的时候就是带参数,注意:在UnityEditor模式也就是编辑器模式会有默认参数返回,Length是大于1的 常用

    2024年02月16日
    浏览(31)
  • Postman接口测试之POST、GET请求方法

    1.HTTP的五种请求方法 :GET, POST ,HEAD,OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。 2.接口调用传参方式 :key-value参数形式,Json串传参形式。 key-value参数:把参数拼接在url的后面由?相连,多个参数之间用相连。 Json串传参:需要在请求的body写中,入Json格式参数。 功能说明:

    2023年04月08日
    浏览(36)
  • 使用Postman发送GET请求和POST请求

    Postman是一款流行的API测试和开发工具,它提供了一个易于使用的界面,用于发送HTTP请求并与REST、SOAP和其他Web服务进行交互。以下是对Postman的简单介绍: 发送HTTP请求:Postman允许您以简单直观的方式发送各种类型的HTTP请求(GET、POST、PUT、DELETE等)到指定的URL。您可以设置请

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包