OKHTTP 实现流式传输上传文件
1. 引入okhttp依赖
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
2. 编写工具类
object HttpUtils {private val client = OkHttpClient()fun postStream(url: String, call: (OutputStream) -> Unit) {val mediaType = "application/octet-stream".toMediaTypeOrNull()val requestBody = object : RequestBody() {override fun contentType() = mediaTypeoverride fun writeTo(sink: BufferedSink) {call(sink.outputStream())}}val request = Request.Builder().url(url).post(requestBody).build()val body = client.newCall(request).execute().bodyif (body != null) {Log.i("okhttp", body.string())}}
}
3. 使用
拿Android中的Bitmap为例,其他需要直接操作OutputStream同理
// 推送图片流到指定url
HttpUtils.postStream("http://192.168.31.13:8080/up/img") { out ->// 将bitmap压缩成jpg,写入到输出流中bmp.compress(Bitmap.CompressFormat.JPEG, 100, out)
}
OKHTTP 实现流式传输上传文件相关推荐
- gRPC python实现文件上传,以及使用流式通信上传超大文件
通过gRPC接口上传文件的优点 使用gRPC上传文件有许多优点: 实现简单.就是简单地写个接口,而且rprotobuf 定义好了参数,Server端与Client对接方便 无须部署额外软件.生产环境不 ...
- 使用hbuilder前端工具直接连接服务器FTP/SFTP连接传输上传文件
hbuilder前端工具直接连接FTP/SFTP连接传输上传文件#优点# 1>不需要冗余的下载ftp工具 *第一步* 1>hbuilder插件市场安装SFTP/FTP Sync 2> ...
- 迈克尔 杰克逊mv_用杰克逊流式传输大型JSON文件– RxJava常见问题解答
迈克尔 杰克逊mv 在上一篇文章中,我们学习了如何解析过大的XML文件并将其转换为RxJava流. 这次让我们看一个大的JSON文件. 我们的示例将基于微小的colors.json,其中包含将近150 ...
- 用杰克逊流式传输大型JSON文件– RxJava常见问题解答
在上一篇文章中,我们学习了如何解析过大的XML文件并将其转换为RxJava流. 这次让我们看一个大的JSON文件. 我们的示例将基于微小的colors.json,其中包含将近150种这种格式的记录: ...
- grpc 流式传输_编写下载服务器。 第一部分:始终流式传输,永远不要完全保留在内存中...
grpc 流式传输 下载各种文件(文本或二进制文件)是每个企业应用程序的生死攸关的事情. PDF文档,附件,媒体,可执行文件,CSV,超大文件等.几乎每个应用程序迟早都必须提供某种形式的下载. 下载是 ...
- Android上传文件
Android开发经常遇到要上传文件,我在网上找了一些文件上传的解决方案,自己做了一个整合.JavaWeb端参考:JavaWeb学习总结(五十)--文件上传和下载 直接上代码: 1,HttpURLCo ...
- java spring上传_SpringMVC上传文件的三种方式
直接上代码吧,大伙一看便知 前台: pageEncoding="utf-8"%> Insert title here 采用流的方式上传文件 采用multipart提供的fil ...
- HDFS使用流的方式上传下载
主代码 package api;import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStr ...
- SpringMVC上传文件的三种方式
/** 通过流的方式上传文件* @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象*/@Reques ...
最新文章
- android 浏览器源码分析,从源码出发深入理解 Android Service
- 两组回归系数差异检验_【stata系列】——组间系数差异检验
- android 启动service报错,Android小经验
- 基于bert的语义匹配_构建基于BERT的语义搜索系统…针对“星际迷航”
- mvn 打包可执行包_用Maven打包发布可执行的jar包
- 程序员可以只关心技术么?
- Java 将File转换为MultipartFile类型
- 阅读bulid to win感想
- 身份证号码中间显示*星号
- 面试--拼多多面试--后台开发实习生
- oracle12c不使用cdb模式,12c CDB和PDB启动和关闭操作
- 全产业链核心升级 集聚创新大展宏图——慕尼黑华南电子展回顾
- 冒泡排序正序逆序例子
- Android开发:开源库集合
- android 水滴动画效果图,Android控件实现水滴效果
- 工具技巧和读文档 | 读函数式编程接口文档 | 匿名内部类 | lambda表达式 |IDEA
- 流行的软件测试工具介绍
- Attention注意力机制——ECANet以及加入到1DCNN网络方法
- VC++6.0 报错error spawning cl.exe解决方法【推荐】
- 办公室白领长时间久坐很伤身
热门文章
- html如何让图片不能抓取,Jsoup+Htmlunit抓取图片遇到坑
- 保研文书——导师推荐信模板
- 所有TXT记事本文件都打不开了,提示:“Windows 找不到文件”怎么解决?
- 贵金属走势图之波浪理论实战的意义
- Ubuntu Server 16.04安装过程记录
- bouguet算法极线校正出现视野丢失问题(求解答)
- macbook系统占用硬盘大_MAC系统占用很多硬盘空间怎么办?
- 如何优雅地在Ubuntu上快速浏览并安装Google字体
- Django教程 —— Django模板
- 正则表达式快速入门笔记