Okhttp3 - RequestBody.create(contentType, content) 弃用

新手上路,请多包涵

我没有找到任何有关如何替换弃用方法的示例。 okhttp3 主页上的示例是旧的。这是其中之一:

 public static final MediaType JSON = MediaType.get("application/json; charset=utf-8");

OkHttpClient client = new OkHttpClient();

String post(String url, String json) throws IOException {
    RequestBody body = RequestBody.create(JSON, json);
      Request request = new Request.Builder()
          .url(url)
          .post(body)
          .build();
  try (Response response = client.newCall(request).execute()) {
    return response.body().string();
  }
}

如果有人能解决它,我将不胜感激你的帮助。

更新:我正在使用 ‘com.squareup.okhttp3:okhttp:4.0.1’

原文由 Matías 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
1 个回答

Java 解决方案: 例如,使用 create(String, MediaType) 而不是 create(MediaType, String)

Kotlin解决方案: 使用扩展函数 content.toRequestBody(contentType) ;对于文件类型 file.asRequestBody(contentType)

注意: 我正在使用 kotlin,但我的 IDE 不会自动导入类似 import okhttp3.RequestBody.Companion.toRequestBody 的类或方法,所以我手动导入它…然后将其用作 Saeed YounusPratyesh 给出的示例以下

更多信息: 文档

(在 Android Studio 或任何 Jetbrain 的 IDE 中,只需按住 Ctrl 并单击 create(...)RequestBody.create 即可找到已弃用方法或类的解决方案)

原文由 YuTang 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题