OkHttp3 Request.Builder 的 post 函数不会接受 FormBody 作为参数

问题描述 投票:0回答:1

在 Android Studio(2023.2.1 补丁 1)中使用 OkHttp3 4.12.0 和 Kotlin,我尝试发布

FormBody
post
中的
Request.Builder()
函数不会接受
FormBody
作为参数,因为它需要一个
RequestBody
,即使前者扩展了后者。

即使尝试直接使用他们的文档中的示例也会遇到同样的问题:

val formBody = FormBody.Builder()
    .add("search", "Jurassic Park")
    .build()

val request = Request.Builder()
     .url("https://en.wikipedia.org/w/index.php")
     .post(formBody)
     .build()
Type mismatch.
Required:
    RequestBody!
Found:
    FormBody

我可以将

as RequestBody
添加到
formBody
定义的末尾,从而删除
post
中的警告,但创建另一个警告
this cast can never succeed

我缺少什么,在这里发布表单正文的正确方法是什么?

android kotlin okhttp
1个回答
1
投票

代码看起来不错,您可能只是导入了错误的

Request
类。应该是这样的:

import okhttp3.Request
© www.soinside.com 2019 - 2024. All rights reserved.