android 文件流的方式多张图片上传,并多个参数

android 文件流的方式多张图片上传,并多个参数,第1张

android 开发中图片上传是很正常的,有两种可用的方式:

下面我们就说明一下以文件流上传图片的方式, 实现网络框架是Retrofit

测试上传3张手机sd卡中的图片,并传人了参数EquipmentCode, Description, ReportUserCode等

其中的思路是: Post的方式,Content-Type:multipart/form-data的类型进行上传文件的。

其中MultipartBody是RequestBody的扩展,

看看请求头的信息, 请求中携带了所有信(如果接口开发人员说不能收到, 叫他自己想想,截图给他,哈哈哈:)

上面的是上传了3张图片,如果一张,只要传一个仔晌雹就行!

就这样,图片上传的两种方式ok拉,念帆谨消测试通过的,保证正确!

参考: https://www.jianshu.com/p/acfefb0a204f

Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网大知络祥橘请求接口的封装

1.添加Retrofit库的依赖:

后面三个是可选的,分别是数据解析器和gson,以及rxjava支持的依赖

2.创建 用于描述网络请求 的接口

Retrofit将 Http请求 抽象成 Java接口:采用 注解 描述网络请求参数 和配置网络请求参数

3.创建Retrofit实例

4.发送请求

请求分为同步请求和异步请求

response.body()就是Reception对象,网络请求的完整 Url =在创建Retrofit实例时通过滚宴消.baseUrl()设置 +网络请求接口的注解设置(下面称 “path“ )

整合的规则如下:

上面我们用了@GET注解来发送Get请求,Retrofit还提供了很多其他的注解类型

1.@GET、@POST、@PUT、@DELETE、@HEAD分别对应 HTTP中的网络请求方式

2.@HTTP替换@GET、@POST、@PUT、@DELETE、@HEAD注解的作用 及 更多功能拓展

具体使用:通过属性method、path、hasBody进行设置

1.@FormUrlEncoded

表示发送form-encoded的数据,每个键值对需要用@Filed来注解键名,随后的对象需要提供值。

2.@Multipart

表示发送form-encoded的数据(适用于 有文件 上传的场景),每个键值对需要用@Part来注解键名,随后的对象需要提供值。

1.@Header &@Headers

添加请求头 &添加不固定的请求头

2.@Body

以 Post方式 传递 自定义数据类型 给服务器,如果提交的是一个Map,那么作用相当于 @Field,不过Map要经过 FormBody.Builder 类处理成为符合 Okhttp 格式的表单,如:

3.@Field &@FieldMap

发送 Post请求 时提交请求的表单字段,与 @FormUrlEncoded 注解配合使用

4.@Part &@PartMap

发送 Post请求 时提交请求的表单字段,与@Field的区别:功能相同,但携带的参数类型更加丰富,包括数据流,所以适用于 有文件上传 的场景,与 @Multipart 注解配合使用

5.@Query和@QueryMap

用于 @GET 方法的查询参数(Query = Url 中 ‘?’ 后面的 key-value)

如:url = http://www.println.net/?cate=android ,其中,Query = cate

配置时只需要在接口方法中增加一个参数即可:

6.@Path

URL地址的缺省值

7.@Url

直接传入一个请求的 URL变量 用于URL设置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12125495.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存