首页 > 其他分享 >接口请求响应码415报错信息UNSUPPORTED_MEDIA_TYPE问题记录

接口请求响应码415报错信息UNSUPPORTED_MEDIA_TYPE问题记录

时间:2023-12-26 22:57:56浏览次数:45  
标签:HTTP 请求 UNSUPPORTED 415 api 报错 Type public String

场景描述

开发了一个Post类型的接口,在本地用postman测试是没有问题。前端调用返回415 UNSUPPORTED_MEDIA_TYPE。而415 Unsupported Media Type 是一种HTTP 协议的错误状态代码,表示服务器由于不支持其有效载荷的格式,从而拒绝接受客户端的请求后面定位问题发现,后端接口请求参数使用@RequestBody注解,该注解要求请求体的类型是application/json。前端的请求体类型是application/x-www-from-urlencoded。发送的请求体类型与后端要求的不一致导致报错。

请求体有哪些类型?


我们从postman工具上可以看到多种请求体类型,下面对常用的请求体进行相关说明

表单数据

例子

POST /api/formdata HTTP/1.1
Content-Type: application/x-www-form-urlencoded
username=johndoe&password=pass123

SpringBoot注解接收参数

@PostMapping("/api/formdata")
public String handleFormData(@RequestParam String username, @RequestParam String password) {
    // 处理请求
}

// 如果想接收所有表单参数,即封装成一个实体类,可以采取@ModelAttribute
    @PostMapping("/api/submitForm")
    public String handleFormSubmission(@ModelAttribute YourRequestObject requestObject) {
        // 处理请求
        // requestObject 将包含所有请求参数的值
        return "successPage";
    }

JSON数据

例子

POST /api/jsondata HTTP/1.1
Content-Type: application/json

{
    "username": "johndoe",
    "password": "pass123"
}

Spring Boot注解

@PostMapping("/api/jsondata")
public String handleJsonData(@RequestBody User user) {
    // 处理请求
}

XML数据

例子

POST /api/xmldata HTTP/1.1
Content-Type: application/xml

<user>
    <username>johndoe</username>
    <password>pass123</password>
</user>

Spring Boot注解

@PostMapping("/api/xmldata")
public String handleXmlData(@RequestBody User user) {
    // 处理请求
}

文件上传

例子

POST /api/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=--------------------------123456789012345678901234

(multipart data)

Spring Boot注解

@PostMapping("/api/upload")
public String handleFileUpload(@RequestParam("file") MultipartFile file) {
    // 处理文件上传
}

标签:HTTP,请求,UNSUPPORTED,415,api,报错,Type,public,String
From: https://www.cnblogs.com/hello-czf/p/17929546.html

相关文章

  • gym103415A Math Ball
    套路生成函数。写出答案的式子,设\(f_i(x)=\sumj^{c_i}x^j\),不难得到答案为:\[[x^W]{1\over1-x}\prod_{i=1}^nf_i(x)\]考虑求\(f_i(x)\)。看到指数上有\(c_i\),想到用斯特林数展开:\[f_i(x)=\sum_{j=0}^{\infty}x^j\sum_{k=0}^{c_i}{c_i\bracek}\binom{j}{k}k!\]\[=\s......
  • jenkins运行任务报错Failed to initialize解决
    按照jenkins中文挂网创建了一个创建HelloWorld流水线,使用的示例为Node.js/JavaScript运行jenkins任务后,提示失败,然后在consoleoutput里发现以下错误信息Failedtoinitialize:unabletoresolvedockerendpoint:openD:/ProgramFiles/Git/certs/client/ca.pem:nos......
  • 微信小程序测试框架minium 报错MiniCommandError: timeout问题排查和解决
    系统:win10python版本:3.11.7minium版本:1.4.6微信开发工具版本:1.06.2310080运行minitest官网的一个简单例子,内容如下#!/usr/bin/envpython3importminiumclassFirstTest(minium.MiniTest):deftest_get_system_info(self):sys_info=self.mini.get_sys......
  • Camstar service:Database Unavailable报错
     原因说明:我们用的半导体8.5版本的。然后开发desginer用的2.0。问题就是出在2.0上,我们几个同事都是用2.0designer开发的,2.0导出差异一直报错,用的1.0导出差异不报错,后续再导入差异合并。(2个人的差异合并,更新直接系统挂了)。解决方案:拿原始档mdb,用designer1.0打开,导入A同事的差异,......
  • Win10远程桌面连接报错:出现身份验证错误,要求的函数不受支持(CredSSP)
    问题: 解决方法:1、Win+R,打开运行窗口,输入regedit,打开注册表2、找到路径:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System3、在System文件夹内创建文件夹项:\CredSSP\Parameters4、在Parameters文件夹内,新建DWORD(32)值(D),文件名为Al......
  • PyQt报错:Cannot load backend 'Qt5Agg' which requires the 'qt5' interactive framew
    PyQt报错:Cannotloadbackend'Qt5Agg'whichrequiresthe'qt5'interactiveframework,as'headless'iscurrentlyrunning问题描述在远程链接ubuntu虚拟机进行开发时,报错。解决方案原因是pyqt需要绘制UI,而使用远程链接的终端(如windowspowershell、xshell、vscodetermi......
  • pnpm切换源后报错ERR_PNPM_REGISTRIES_MISMATCH
    工具都是有利有弊,使用pnpm过程中经常会出现一个错误:Thismodulesdirectorywascreatedusingthefollowingregistriesconfiguration:{"default":"https://registry.npmjs.org/"}.Thecurrentconfigurationis{"default":"https://registry.npm.taob......
  • go服务get请求中携带分号(;)时报错,获取不到参数的问题
    前言我们在写get方式的api请求时,有时候会用这样的一种方式携带参数:http://ip:port/a/b?query=key:1;value:2&other=xxx,这里我们注意到query一个字段其实是携带了等子字段的,一个是key,一个是value;这在go1.17版本之前是没有问题的。但是在1.17之后打印警告,在1.20之后,go服务会......
  • jumpserver连接ecs实例报错:UNREACHABLE! => {"changed": false, "msg": "Failed to
     报错分析思路:1.是ssh密钥设置有没有对接2.防火墙拦截问题3.用户设置问题4.sshd配置问题 问题解决: 无法与221.229.216.39端口35846进行协商:找不到匹配的主机密钥类型。他们提供的是:ssh-rsa、ssh-dss[preauth]在sshd配置中加上ssh-rsa和ssh-dss是两种主机密钥算......
  • Windows下的Redis启动报错Redis service failed to start解决方法
    报错原因:Redis服务没有找到log文件解决方法在Redis安装目录下打开redis.windows-service.conf文件搜索logfile,找到logfile存放目录,一般默认为Logs/redis_log.txt在Redis安装目录创建Logs文件夹,在Logs文件夹下创建redis_log.txt文件重新启动即可解决......