记录一次Unsupported Media Type解决方案

笔者今天碰到一个问题,就是自身的一个接口被第三方的业务回调的时候出现了一个415的错误,也就是Unsupported Media Type。之后查了些资料,总结一下。


一、415是什么错误?

对于当前请求的方法和所请求的资源,请求中提交的实体并不是服务器中所支持的格式,因此请求被拒绝。
也就是说第三方发给己方服务器参数格式和服务器所要求的的参数格式不一样,比如第三方传的是’application/x-www-form-urlencoded;charset=UTF-8’(前端表单默认的格式,会将键值对的参数用&连接起来,如果有空格,将空格转换为+加号;有特殊符号,将特殊符号转换为ASCII HEX值),而服务器需要的是json格式,这样就会出现415错误。

二、两种解决办法

主要有两种分别对应了服务端和客户端

服务端:调整接口接收参数的方式。比如要是接收的是json字符串格式的参数,就使用@RequestBody注解整体接收;接收用&连接起来的参数则用@RequestParam注解一一接收。

客户端:调整上传参数的格式,按照接口需求的参数进行传递。

三、顺便记录一下常见的媒体格式类型

常见的媒体格式类型:

  • text/html :HTML格式
  • text/xml :XML格式
  • text/plain :纯文本格式
  • image/gif :gif图片格式
  • image/jpeg :jpg图片格式
  • image/png :png图片格式

以application开头的媒体格式类型:

  • application/x-www-form-urlencoded :form表单中默认的格式,form表单数据被编码为key/value格式发送到服务器。
  • application/json :JSON数据格式
  • application/xml :XML数据格式
  • application/xhtml+xml :XHTML格式
  • application/atom+xml :Atom XML聚合格式
  • application/pdf :pdf格式
  • application/msword :Word文档格式
  • application/octet-stream :二进制流数据(如常见的文件下载)

当然还有一个form表单中使用到的文件上传格式:multipart/form-data就不写到上述两类中去了。

  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缘丶沐逸尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值