【发布时间】:2023-03-03 08:43:26
【问题描述】:
要使用 OkHttp 发送 POST 请求,我已经看到他们使用 FormBody.Builder,但这需要我手动输入 POST 数据的每个名称和值。有没有办法使用带有 POST 数据的单个字符串创建 RequestBody?例如,而不是
FormBody.Builder bodyBuilder = new FormBody.Builder();
bodyBuilder.add("name", "value");
bodyBuilder.add("name2", "value2");
...只是在做
bodyBuilder.add("name=value&name2=value2");
【问题讨论】:
-
欢迎来到 StackOverflow! “手动输入”是什么意思?你把它放在你的源代码中一次就可以了?
-
你试过
RequestBody.create(MediaType contentType, String content)吗?将 contentType 和内容作为字符串传递。 -
是的,但我正在进行的项目是基于解析 POST 数据并发送一些请求。而且,每次将原始数据转换为地图都会降低性能
-
rcorreia 是的,我做到了,但由于某种原因它没有发送任何数据......但是 contentType 重要吗?
-
@JohnRock 尝试创建这个变量
public static final MediaType FORM = MediaType.parse("multipart/form-data");。将 FORM 变量作为 contentType 传递。