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 实现流式传输上传文件相关推荐

  1. gRPC python实现文件上传,以及使用流式通信上传超大文件

    通过gRPC接口上传文件的优点 使用gRPC上传文件有许多优点: 实现简单.就是简单地写个接口,而且rprotobuf 定义好了参数,Server端与Client对接方便 无须部署额外软件.生产环境不 ...

  2. 使用hbuilder前端工具直接连接服务器FTP/SFTP连接传输上传文件

    hbuilder前端工具直接连接FTP/SFTP连接传输上传文件#优点# 1>不需要冗余的下载ftp工具 *第一步* 1>hbuilder插件市场安装SFTP/FTP Sync 2> ...

  3. 迈克尔 杰克逊mv_用杰克逊流式传输大型JSON文件– RxJava常见问题解答

    迈克尔 杰克逊mv 在上一篇文章中,我们学习了如何解析过大的XML文件并将其转换为RxJava流. 这次让我们看一个大的JSON文件. 我们的示例将基于微小的colors.json,其中包含将近150 ...

  4. 用杰克逊流式传输大型JSON文件– RxJava常见问题解答

    在上一篇文章中,我们学习了如何解析过大的XML文件并将其转换为RxJava流. 这次让我们看一个大的JSON文件. 我们的示例将基于微小的colors.json,其中包含将近150种这种格式的记录: ...

  5. grpc 流式传输_编写下载服务器。 第一部分:始终流式传输,永远不要完全保留在内存中...

    grpc 流式传输 下载各种文件(文本或二进制文件)是每个企业应用程序的生死攸关的事情. PDF文档,附件,媒体,可执行文件,CSV,超大文件等.几乎每个应用程序迟早都必须提供某种形式的下载. 下载是 ...

  6. Android上传文件

    Android开发经常遇到要上传文件,我在网上找了一些文件上传的解决方案,自己做了一个整合.JavaWeb端参考:JavaWeb学习总结(五十)--文件上传和下载 直接上代码: 1,HttpURLCo ...

  7. java spring上传_SpringMVC上传文件的三种方式

    直接上代码吧,大伙一看便知 前台: pageEncoding="utf-8"%> Insert title here 采用流的方式上传文件 采用multipart提供的fil ...

  8. HDFS使用流的方式上传下载

    主代码 package api;import java.io.FileInputStream; import java.io.InputStream; import java.io.OutputStr ...

  9. SpringMVC上传文件的三种方式

    /** 通过流的方式上传文件* @RequestParam("file") 将name=file控件得到的文件封装成CommonsMultipartFile 对象*/@Reques ...

最新文章

  1. android 浏览器源码分析,从源码出发深入理解 Android Service
  2. 两组回归系数差异检验_【stata系列】——组间系数差异检验
  3. android 启动service报错,Android小经验
  4. 基于bert的语义匹配_构建基于BERT的语义搜索系统…针对“星际迷航”
  5. mvn 打包可执行包_用Maven打包发布可执行的jar包
  6. 程序员可以只关心技术么?
  7. Java 将File转换为MultipartFile类型
  8. 阅读bulid to win感想
  9. 身份证号码中间显示*星号
  10. 面试--拼多多面试--后台开发实习生
  11. oracle12c不使用cdb模式,12c CDB和PDB启动和关闭操作
  12. 全产业链核心升级 集聚创新大展宏图——慕尼黑华南电子展回顾
  13. 冒泡排序正序逆序例子
  14. Android开发:开源库集合
  15. android 水滴动画效果图,Android控件实现水滴效果
  16. 工具技巧和读文档 | 读函数式编程接口文档 | 匿名内部类 | lambda表达式 |IDEA
  17. 流行的软件测试工具介绍
  18. Attention注意力机制——ECANet以及加入到1DCNN网络方法
  19. VC++6.0 报错error spawning cl.exe解决方法【推荐】
  20. 办公室白领长时间久坐很伤身

热门文章

  1. html如何让图片不能抓取,Jsoup+Htmlunit抓取图片遇到坑
  2. 保研文书——导师推荐信模板
  3. 所有TXT记事本文件都打不开了,提示:“Windows 找不到文件”怎么解决?
  4. 贵金属走势图之波浪理论实战的意义
  5. Ubuntu Server 16.04安装过程记录
  6. bouguet算法极线校正出现视野丢失问题(求解答)
  7. macbook系统占用硬盘大_MAC系统占用很多硬盘空间怎么办?
  8. 如何优雅地在Ubuntu上快速浏览并安装Google字体
  9. Django教程 —— Django模板
  10. 正则表达式快速入门笔记