关于Content-Type: multipart/form-data的支持

发布于 537天前  作者 yzhang226  303 次浏览  复制  上一个帖子  下一个帖子
 标签: 无

今天使用postman测试, 发现multipart/form-data的参数不支持,

postman的数据如下:

POST /dada-log-api/v1/logging/line HTTP/1.1
Host: 127.0.0.1:8380
Verification-Hash: casa
Cache-Control: no-cache
Postman-Token: 719df17f-c105-d42d-411c-876d3345c3fe
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW

----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="topic"

xx
----WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="logLine"

请问有办法支持?

16 回复
wendal  1楼•537天前

加了@AdpateBy注解没?

yzhang226  2楼•537天前

@wendal 加哪一个AdpateBy??

wendal  3楼•537天前

@yzhang226

@AdapteBy(type=UploadAdapter.class)

yzhang226  4楼•537天前

@wendal 真的可以✌, 请问能否加两种AdapteBy, 支持两种呢? 我还想支持application/x-www-form-urlencoded, 主要是以前用spring没有这个限制

wendal  5楼•537天前

@yzhang226 有,叫WhaleAdapter

wendal  6楼•537天前

@wendal 说错,Whale是支持3种,普通表单,json,文件上传

UploadAdapter同时支持普通和文件上传的

wendal  7楼•537天前

越说越乱。。。。

用Whale就是了

yzhang226  8楼•537天前

@wendal

 @At("/line")@POST@Ok("json")@AdaptBy(type=WhaleAdaptor.class)public RawRespone<Integer> logLine(@Param("topic") String topic, @Param("logLine") List<String> logLines, HttpServletRequest req) {

multipart/form-data是可以了, 但是application/x-www-form-urlencoded参数为null

wendal  9楼•537天前

@yzhang226 debug一下Whale,理应会判断的

yzhang226  10楼•537天前

@wendal application/x-www-form-urlencoded时, req.getParameterMap() 有数据, 但是没有注入

yzhang226  11楼•537天前

@wendal
adptor代码没有urlencoded的判断

String type = req.getHeader("Content-Type");if (!Strings.isBlank(type)) {if (type.contains("json")) { // JSON适配器try {return Json.fromJson(req.getReader());} catch (Exception e) {throw Lang.wrapThrow(e);}}if (type.contains("multipart/form-data")) { // 上传适配器FastUploading uploading = new FastUploading();try {return uploading.parse(req, uploadCtx);} catch (UploadException e) {throw Lang.wrapThrow(e);}}}return super.getReferObject(sc, req, resp, pathArgs);

yzhang226  12楼•537天前

  • @wendal @Param("logLine") List<String> logLines 这个是list, 是不是不能注入?
    Map<String, String[]> params = req.getParameterMap();是有logLine的参数数据的

wendal  13楼•537天前

用数组

    @Ok("json")@At("/whale/test")@AdaptBy(type=WhaleAdaptor.class)public Object whaleInput(@Param("lines")String[] lines) {return lines;}

yzhang226  14楼•537天前

@wendal 换成数组之后确实可以了, 我有两个疑问:
为什么默认适配器不用Whale?
List为什么在这种情况下不能适配?而在form-data下list是可以的?

谢谢

wendal  15楼•537天前

WhaleAdaptor里面有个判断没做好, 还需要根据泛型判断一下:

        if (List.class.isAssignableFrom(clazz))return new MapListInjector(paramName);

至于为啥默认不是WhaleAdaptor,那是怕任何接口都能做文件上传了. 不过, 自行在MainModule设置为WhaleAdaptor,也就变成默认的了.

yzhang226  16楼•537天前

@wendal 真的而是万分感谢, 完美解决了我的问题

转载于:https://www.cnblogs.com/telwanggs/p/7803540.html

关于Content-Type: multipart/form-data的支持相关推荐

  1. HttpMediaTypeNotSupportedException:Content type 'multipart/form-data;boundary=W10Jdm..'not supported

    最近在做一个excel导入的功能.在入参 body 中同时传入文件和其它基本信息结果出现如题异常.在此记录下解决办法.以做记录. org.springframework.web.HttpMediaTy ...

  2. message: Content type 'multipart/form-data;boundary=----WebKitFormBoundaryksbSBUwTCB6eHI3j;charse

    postman 发送post请求出现错误:"message": "Content type 'multipart/form-data;boundary=----WebKi ...

  3. 报错Content type ‘multipart/form-data;boundary=----WebKitFormBoundaryTz0sivpVO7U0H70m;charset=UTF-8‘ n

    最近在做一个图片上传,遇到这了这种情况,在入参 body 中同时传入文件和其它参数信息结果出现如题异常. 特别在此记录解决办法,以供大家参考. method="post"必须事po ...

  4. Content type 'multipart/form-data;boundary=--------------------------496238283102520395700876;解决方案

    Content type 'multipart/form-data;boundary=--------------------------496238283102520395700876;解决方案 在 ...

  5. Content type 'multipart/form-data;boundary=--------------------------258075776767858126421870;chars

    记录一下小错误,今天用postman测试添加接口时报错,想传一个实体到接口,便选了一个Headers Body使用form-data 便出现了标题的错误 "msg": " ...

  6. Content type 'multipart/form-data;boundary=----WebKitF;charset=UTF-8' not supported

    springboot后台接收文件和对象的时候,会报Content type 'multipart/form-data;boundary=----WebKitF;charset=UTF-8' not s ...

  7. Content type ‘multipart/form-data;boundary=解决方案

    记录一个小问题 今天在用postman调试接口,发送请求的时候没进入断点就报错" Content type 'multipart/form-data;boundary=----------- ...

  8. 上传文件.HttpMediaTypeNotSupportedException:Content type ‘multipart/form-data;

    org.springframework.web.HttpMediaTypeNotSupportedException:Content type 'multipart/form-data;boundar ...

  9. 1. 恼人的Multipart form data

    文章目录 1. 概述 2. 问题 3. 解决方案 3.1 解决方案一 3.2 解决方案二 3.3 解决方案三 4. 总结 1. 概述 我目前在公司负责开放平台项目,使用spring-cloud-gat ...

  10. 上传文件报错:Content type ‘multipart/form-data;boundary=----WebKitFormBoundarypJygPIIxqzTHmtkQ;charset=...

    @ReponseBody不支持form-data,所以要接收带有文件的form-data有3种方式. 方式一: @PostMapping("upload") public Stri ...

最新文章

  1. Graph2Vec在XFL论文中提及的用处
  2. 配置深度学习环境的重要资料
  3. 多核导航模块(Multicore Navigator)
  4. C++文件打开模式详解
  5. Vue表单类的父子组件数据传递示例_vue.js_脚本之家
  6. java遍历Set集合
  7. Windows Embedded CE 6.0开发初体验(五)构建CE平台
  8. 2020阿里云双12-企业飞天会员年终盛典全攻略
  9. TiDB 部署及数据同步
  10. AWS ECS简单了解
  11. EditPlus 使用技巧集萃(转)
  12. ef设置非自增长id_Ef core 如何设置主键
  13. k8s api文档 调用heapster metrics
  14. 2006年,谁是我们的博客之星?
  15. websocket 压测工具 有哪些_性能测试总结(概念amp;流程amp;工具)
  16. scrum敏捷开发流程介绍和心得
  17. 计算机二级文档技巧,计算机二级选择题技巧
  18. 【BP数据预测】基于matlab天牛须算法优化BP神经网络数据预测【含Matlab源码 1316期】
  19. 微信营销怎么做,5中常见运作模式解析
  20. HDOJ - 2371 矩阵乘法

热门文章

  1. (88)FPGA乘法器设计(移位相加乘法器)
  2. (13)Zynq DDR控制器介绍
  3. 查看 linux 网络状态命令,Linux操作系统常用的网络状态查询命令
  4. 04.通过qss文件设置setStyleSheet
  5. 路德维希贝多芬计算机怎么操作,贝多芬是不是听不见和看不见
  6. Input 输入设备驱动框架
  7. linux内核网络栈代码的准备知识
  8. Linux+varnish安装配置
  9. ARM11---中断---向量中断控制器(VIC)---结合s3c6410
  10. 基于alsa的音量控制代码