gpt4 book ai didi

android - 如何使用 Fuel for Kotlin 发布多部分/表单数据?

转载 作者:可可西里 更新时间:2023-11-01 16:40:01 24 4
gpt4 key购买 nike

我需要向服务器发送 POST 请求。我应该传递一些参数和图像。我可以通过 Postman 执行此操作,但我无法使用 Fuel 在我的 Android 应用程序(最新的 SDK)上执行此操作。

这是我正在使用的代码:

val formData = listOf("name" to "name")
val (_, _, result) = Fuel.upload("http://10.0.2.2:3000/test", parameters = formData)
.source { request, url -> imageFile } // type is File
.responseObject<CustomResponse>()

这是 postman 截图: enter image description here

我无权访问后端代码,只能访问一些日志。看起来请求正文是空的,文件也没有上传。我怎样才能做到这一点?我很茫然。

我还尝试将参数作为 jsonBody 传递,这确实提交了正文,但内容类型不是 multipart/form-data 并且图像仍然丢失。

此 JS 代码有效:

let formData = new FormData();
formData.append('name', 'name');
formData.append('image', this.file);
axios.post(`${API_URL}/test`, formData, {
headers: {
'Content-Type': 'multipart/form-data'
}
}).then(console.log).catch(console.log)

编辑:我也尝试过将文件作为 DataPart 传递,但仍然没有。

最佳答案

经过一番努力,我发现了可行的方法:

val file = FileDataPart.from("path_to_your_file", name = "image")
val (_, _, result) = Fuel.upload("http://10.0.2.2:3000/test")
.add(file)
.responseObject<CustomResponse>()

在我的案例中我不需要名称部分,但我会尝试添加 InlineDataPart

关于android - 如何使用 Fuel for Kotlin 发布多部分/表单数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54172694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com