首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

OkHttp 3.x 遷移指南:FormEncodingBuilder 替代為 FormBody.Builder 與 MultipartBody.Builder

     編輯:程式設計疑難解答

變更背景

OkHttp 3.0 重構 API,移除 FormEncodingBuilder、RequestBody.create(MediaType, byte[]) 等舊類,改用 Builder 模式。

新版用法

  1. 表單提交:
    RequestBody formBody = new FormBody.Builder()
        .add("username", "user")
        .add("password", "123456")
        .build();
    Request request = new Request.Builder()
        .url("https://example.com/login")
        .post(formBody)
        .build();
  2. 多部分上傳:
    RequestBody requestBody = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("file", "avatar.png",
            RequestBody.create(MediaType.parse("image/png"), fileBytes))
        .addFormDataPart("userId", "123")
        .build();

遷移清單

  • 全局搜索 FormEncodingBuilder 替換為 FormBody.Builder。
  • RequestBody.create(mediaType, string) 改為 RequestBody.create(string, mediaType)(參數順序互換)。
  • 同步客戶端 client.newCall(request).execute(),異步 enqueue(callback)。

官方指南

OkHttp Recipes & Migration Guide

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved