gpt4 book ai didi

android - 使用 Retrofit 发送多部分数据

转载 作者:行者123 更新时间:2023-11-29 19:10:48 31 4
gpt4 key购买 nike

界面

public interface iUpload{
@Multipart
@POST("/uploadmultiplepropimages/")
SamplePojoClass getUploadData(
@Part("prop_id") RequestBody prop_id,
@Part("type") RequestBody type,
@Part("prop_photos") TypedFile prop_photos
);
}

我是这样发送的。我不能像这样发送请求正文。

@Override

protected Void doInBackground(String... params) {

String s = params[0];
File photoFile = new File(s);
System.out.println("file path:"+photoFile);
TypedFile photoTypedFile = new TypedFile("image/png", photoFile);

RequestBody idd = RequestBody.create(MediaType.parse("text/plain"), "");
RequestBody type = RequestBody.create(MediaType.parse("text/plain"), "single");

try {
//uploadImageResponse = RequestResponse.getUploadData(AccountUtils.getProfileId(),photoTypedFile);
uploadImageResponse = RequestResponse.getUploadData(idd,type,photoTypedFile);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}`

它说错误:

Cannot access ByteString class file.

最佳答案

我希望你已经在你的 gradle 文件中添加了 okio 依赖。这将解决无法访问 ByteString 类文件错误。

compile 'com.squareup.okio:okio:1.13.0'

然后像这样编辑您的iUpload 接口(interface)文件:

public interface iUpload{
@Multipart
@POST("/uploadmultiplepropimages/")
SamplePojoClass getUploadData(
@Part MultipartBody.Part file
@Part MultipartBody.Part prop_id,
@Part MultipartBody.Part type
);
}

然后像这样编写MultipartBody.Part:

RequestBody lRequestBody = RequestBody.create(MediaType.parse("multipart/form-data"), pFile);
MultipartBody.Part lFile = MultipartBody.Part.createFormData("file", pFile.getName(), lRequestBody);
MultipartBody.Part id = MultipartBody.Part.createFormData("prop_id", "WRITE_ID_HERE");
MultipartBody.Part type = MultipartBody.Part.createFormData("type", "WRITE TYPE HERE");

最后像这样将这些参数传递给您的 api:

uploadImageResponse = RequestResponse.getUploadData(lFile,id,type);

我希望它能解决你的问题。

注意:这里的pFileFile的实例。要从目录中获取文件,您可以编写如下代码:

File pFile = new File("PATH_OF_FILE");

关于android - 使用 Retrofit 发送多部分数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45413327/

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