OKHTTP 实现流式传输上传文件
生活随笔
收集整理的這篇文章主要介紹了
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 实现流式传输上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初装vs2010旗舰版 遇到的错误
- 下一篇: WPS日常办公