Postman请求结果乱码的相关问题

一、在Postman上预览的请求结果乱码:

检查Postman的Headers配置:

如图:

其中,Content-Type根据自己的需求来修改value,如:请求结果返回的是Json格式,则将value改为 application/json;charset=UTF-8。在编写发送请求的controller时,可以设置响应头,如:

@PostMapping("/pu/{id}")
    public void pu(@PathVariable int id, @RequestBody String message, HttpServletRequest request
    , HttpServletResponse response) throws UnsupportedEncodingException {
       request.setCharacterEncoding("UTF-8");//设置编码
        response.setContentType("application/x-www-form-urlencoded; charset=UTF-8");//设置类型
        redisTemplate.opsForValue().set("sse:data:"+id, message);
    }

另外,Accept可以直接默认*/*,不定义发送请求和响应的格式,也可以根据自己的需求来更改,请参考:链接。发送请求时,如果body需要使用Json格式,则如下图选择:

结果:


二、在浏览器上预览请求结果乱码问题:

在浏览器上预览在Postman中的请求参数返回的请求结果乱码,如图:

只需将接受请求结果的响应头中的ContentType设置为text/html;charset=UTF-8,如下:

    @Autowired
    private RedisTemplate redisTemplate;
    private static final Map<Integer, SseEmitter> map = new HashMap<>();
    @GetMapping("/sub/{id}")
    public SseEmitter sub(@PathVariable int id,HttpServletResponse response) {
        response.setContentType("text/html;charset=UTF-8");//设置类型
        SseEmitter emitter = new SseEmitter();
        map.put(id,emitter);
        try {
            // 模拟从 Redis 中获取数据并发送事件
            String eventData = (String) redisTemplate.opsForValue().get("sse:data:" + id);
            emitter.send(SseEmitter.event().data(eventData));
            emitter.complete();
        } catch ( IOException e) {
            emitter.completeWithError(e);
        } finally {
           map.remove(id);
        }
        return emitter;
    }

结果:

文章到此结束!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值