我想使用Retrofit进行API调用。 该调用基本上会发送一些数据和图像。 这就是我写的:
@POST("notes/new")
@Multipart
@FormUrlEncoded
Call<Note> getData (@Field("title") String title,
@Field("note") String note,
@Header("Authorization") String auth,
@Part MultipartBody.Part file,
@Part("file")RequestBody image);
可以看出,代码有两种编码:@Multipart支持图像上传,使用@Field注释时需要使用@FormurlEncoded。因此,如果缺少任何这些,我就无法工作YET改造一次只允许一个编码注释。 我该怎么做?请帮忙
答案 0 :(得分:1)
我在尝试后找到了更好的方法。 希望这可以帮助其他任何人
@POST("notes/new")
@Multipart
Call<Note> getData (@Part ("title") String title,
@Part("note") String note,
@Header("Authorization") String auth,
@Part MultipartBody.Part file,
@Part("file")RequestBody image);
答案 1 :(得分:0)
据我所知,你不能同时使用FormUrlEncoded和Multipart。
定义您的界面:
@POST("notes/new")
@Multipart
Call<Response> postFile(@Part MultipartBody.Part title,..., @Part MultipartBody.Part file,...);
对于每个拥有@Field的参数,您都可以在调用服务的代码中执行此操作:
String title = "MyTitle";
final MultipartBody.Part titlePart = MultipartBody.Part.createFormData("title", title);