Android端使用Retrofit调用jeesite 4文件上传接口

本文介绍了在Android端如何使用Retrofit调用Jeesite 4的文件上传接口。由于官方文档缺乏详细说明,作者通过抓包工具分析发现,文件上传需进行两个步骤,首先通过POST请求传递fileName和fileMd5,然后根据服务端反馈决定是否进行实际文件上传。在遇到上传失败的问题后,作者发现并解决了Retrofit中关于文件参数名的问题,最终实现成功上传。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jeesite4的文档中完全没有文件上传接口的说明,issue里找了半天有几个相关的但是都没有完整说明,只好自己动手用fiddler和wireshark抓包:

jeesite4中文件上传分为两步请求,对应url都是****/a/file/upload:

  1. 发送post请求,将fileName、fileMd5传送到服务端,服务端根据fileMd5判断文件是否已经上传过,如果是就直接返回上传成功并附带对应url,否则返回如下信息
    {"result":"false","code":"server","message":"没有找到上传的文件!"}

     

  2. 第一步中如果未找到上传的文件,执行真正的上传,这里一直上传不成功,看网络包里对应的参数和文件都在了,可就是找不到原因,后来看到这篇文章中关于Retrofit中part组装参数名的部分,文件对应的参数有个filename,于是我也是了一下,竟然成功了:
这是文章中的代码:
Call<ResponseBody> uploadFile(@Part("file\";filename=\"file.txt"\"") RequestBody file);
//这里的三个转义字符是为了将其原本的name="${param}"格式强行拓展为name="${param1}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值