android上传图片携带参数,Android Retrofit 实现文字(参数)和多张图片一起上传

本文详细分析了如何使用Android Retrofit上传图片并携带参数,通过代码示例展示了单张和多张图片上传的关键点,强调了请求头的正确设置对于上传成功的重要性,并提到了文字参数的处理方式。
摘要由CSDN通过智能技术生成

背景

在有心课堂《自己动手写HTTP框架》课程中有下列课程:

通过自己写的HTTP框架实现将图片和文字等内容在一个接口中提交到后台。

分析

课程中上传图片相关代码如下图所示:

1460000006760641

从上面的代码中可以看出,把图片放在了列表中,图片描述放在了request.content中。

通过对该方法运行时的网络请求抓包分析如下:

--7d4a6d158c9

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

Content-Type: text/plain; charset=UTF-8

Content-Transfer-Encoding: 8bit

stay4it

--7d4a6d158c9

Content-Disposition: form-data; name="file0"; filename="test.png"

Content-Type: image/png

返回结果抓包分析如下:

1460000006659011

从上图Contents项中可以看到有两个关键字段,分别是data和file0字段。

这两个字段是怎么产生的呢?

通过查看《自己动手写HTTP框架》相关代码,有如下方法:

public static void upload(OutputStream out, String filePath) throws AppException {

String BOUNDARY = "7d4a6d158c9"; // 数据分隔线

DataOutputStream outStream = new DataOutputStream(out);

try {

outStream.writeBytes("--" + BOUNDARY + "\r\n");

outStream.writeBytes("Content-Disposition: form-data; name=\"file0\"; filename=\""

+ filePath.substring(filePath.lastIndexOf("/") + 1) + "\"" + "\r\n");

outStream.writeBytes("\r\n"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值