我想重新编码我的项目并使用 okHttp 而不是 Android 中实现的默认 HttpClient。
我已经下载了 okhttp-main 版本的最新源代码。
现在我找到了一些如何创建和构建 POST 请求的示例。
现在我的问题。我想创建一个 RequestBody 来保留几个数据(字符串、文件等),但我不能直接分配它们。
意味着 RequestBuilder 必须通过不同的循环来添加数据。
OkHTTPs RequestBody 似乎立即需要示例中列出的数据 https://github.com/square/okhttp/wiki/Recipes
当我想尝试类似的东西时
RequestBody requestBody = new MultipartBuilder().type(MultipartBuilder.FORM);
for (Object aMData : dataClass.getData().entrySet()) {
Map.Entry mapEntry = (Map.Entry) aMData;
String keyValue = (String) mapEntry.getKey();
String value = (String) mapEntry.getValue();
requestBody.addPart(keyValue, value);
}
for (DataPackage dataPackage : dataClass.getDataPackages()) {
requestBody.addPart("upfile[]", dataPackage.getFile());
}
requestBody.build();
它失败了,因为 build() 本身创建了 RequestBody。在它只是一个 MultipartBuilder() 之前。如果我尝试强制类型为 RequestBody 它不会编译/运行。
那么,在创建 MultiPartBuilder 并添加 DATA 和 Strings 之后添加这些数据的正确方法是什么?