首页 > 其他分享 >spring-boot之POST接口接收字符串

spring-boot之POST接口接收字符串

时间:2022-12-08 21:55:59浏览次数:40  
标签:java String spring boot new 字符串 import POST InputStreamReader

  1. 背景:有些冷门场景下,需要将json字符串以字符串的形式传递给后台接口,后台直接用String去读取,由于长度、包含特殊字符等原因,放在url、form字段都不太合适,或者需要繁琐的转换,急需一种能直接传递字符串的方式。
  2. 源码:
package com.yang.control.os.controller;

import org.RequestMapping;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

/**
 * @description:
 * @author: Yang JianXiong
 * @since: 2022/12/6
 */
@Slf4j
@Controller
public class ZslnPosController {

    @Resource
    private TransactionService transactionService;

    @Deprecated
    @RequestMapping("/zsln/pos/transaction0")
    public String transaction0(HttpServletRequest request) throws IOException {
        // 1.从请求体中读取【输入字节流】
        ServletInputStream inputStream = request.getInputStream();

        // 2.将字节流转换为【字符流】
        InputStreamReader inputStreamReader = new InputStreamReader(inputStream, StandardCharsets.UTF_8);

        // 3.将字符流转为【缓冲字符流】
        BufferedReader streamReader = new BufferedReader(inputStreamReader);

        // 4.逐行读取
        String line;
        StringBuilder sb = new StringBuilder();
        while ((line = streamReader.readLine()) != null) {

            // 5.重新拼接每一行,还原字符串
            sb.append(line);
        }
        
        // 6.下游逻辑
        return this.transactionService.doPosTrade(sb.toString());
    }

}
  1. 测试:
    Postman中发起POST请求,长字符串放在body中以raw -> text的形式发送。

标签:java,String,spring,boot,new,字符串,import,POST,InputStreamReader
From: https://www.cnblogs.com/JaxYoun/p/16967456.html

相关文章

  • dwr笔记二之经典用法之和spring结合+验证用户是否存在
    springmvc+DWR验证用户名是否存在,是最经典的案例了.1在DWR2里,注意配置的类名跟DWR1不同了由uk.ltd.getahead变成了org.directwebremoting。换上了新的配置1<ser......
  • 批量单元框架SpringBatch简介
    SpringBatch简介SpringBatch是一个轻量级的、完善的批处理框架,作为Spring体系中的一员,它拥有灵活、方便、生产可用的特点。在应对高效处理大量信息、定时处理大量数据等......
  • springboot @EnableAutoConfiguration 注解 说明
    springboot@EnableAutoConfiguration注解说明注解:作用在于让SpringBoot   根据应用所声明的依赖来对Spring框架进行自动配置这个注解告诉SpringBoot根据添加......
  • 用 Docker 构建、运行、发布一个 Spring Boot 应用
    ​​https://waylau.com/docker-spring-boot​​​​https://www.tianmaying.com/tutorial/spring-boot-docker​​......
  • springboot整合mongodb MongoTemplate和MongoRepository的用法
    前情Springboot是最简单的使用Spring的方式,而MongoDB是最流行的NoSQL数据库。两者在分布式、微服务架构中使用率极高,本文将用实例介绍如何在Springboot中整合MongoDB的两种......
  • 使用SpringBoot连接MySQL数据库,快速上手「建议收藏」
    大家好,又见面了,我是你们的朋友全栈君。使用SpringBoot连接MySQL目录0环境配置1建立MySQL数据库2使用SpringInitializer快速搭建springboot项目3配置pom.xml文件4配......
  • 『牛角书』鸿蒙结合SpringBoot实现简易消息通知APP
    鸿蒙结合SpringBoot实现简易消息通知APP本项目为学校鸿蒙课程的课程实践设计,本身有一定的Web开发基础,但是从来没有学过移动APP开发,上了这门课之后感觉处处跟Web开发不同,所以......
  • Postman(3): postman持久化保存/设置断言
     Postman(5):postman持久化保存postman持久化保存【文章末尾有.....】1、点击postman的Collections页签,点击+NewCollection创建(可以当成项目并重命名)2、新增后,再点击C......
  • springcloud Config 分布式配置中心
     Server端:提供配置⽂件的存储、以接⼝的形式将配置⽂件的内容提供出去,通过使⽤@EnableConfigServer注解在Springboot应⽤中⾮常简单的嵌⼊Client端:通过接⼝获取配置......
  • springcloud Stream消息驱动
    SpringCloudStream是⼀个构建消息驱动微服务的框架。应⽤程序通过inputs(相当于消息消费者consumer)或者outputs(相当于消息⽣产者producer)来与SpringCloudStream中的bin......