我正在尝试使用用户名和密码上传图片以及pojo模型,但是如何使用multipart添加两者,这是我的代码但不起作用:
EndpointInterface loginService = ServiceAuthGenerator.createService(EndpointInterface.class);
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
Call<String> call = loginService.singup(requestBody,us);
call.enqueue(new Callback<String>() {@Override
public void onResponse(Response<String> response, Retrofit retrofit) {
}
@Override
public void onFailure(Throwable t) {
}
});
我们是我的pojo模型,它包含用户和密码。 这是API接口:
@Multipart
@POST("reg/")
Call<String> singup(
@Part("myfile\"; filename=\"image.png\" ") RequestBody file,
@Part("User") User user);
任何人都可以解释我做错了什么以及如何解决它?
答案 0 :(得分:0)
您应该使用/
代替MediaType.parse("image/*")
吗?这是因为您稍后上传图片。
答案 1 :(得分:0)
对于请求主体,使用多部分构建器可能比@Multipart注释更好。
RequestBody body = new MultipartBuilder()
.type(MultipartBuilder.FORM)
.addFormDataPart("myFile", "image.png", RequestBody.create(MediaType.parse("image/jpg"), new File(picture.getLocalPath())))
.addFormDataPart("user", gson.toJson(user))
.build();
@POST("reg/")
Call<String> singup(@Body RequestBody image);