改进多部分条目内容类型

时间:2017-02-24 11:49:37

标签: retrofit content-type multipart

我正在使用Retrofit 2,我的服务中有以下方法:

@Multipart
@POST("avatar.ashx")
Call<ResponseBody> getAvatar(@Header("Authorization") String auth,
                             @Part(value = "l", encoding = "8bit") String login,
                             @Part(value = "p", encoding = "8bit") String password);

服务器期望带有

部分的请求
Content-Type: text/plain; charset=UTF-8

但是改造产生的要求是

Content-Type: application/json; charset=UTF-8

有没有办法改变内容类型?

1 个答案:

答案 0 :(得分:0)

也许有人需要,所以我会发布我找到的解决方法: 我服务的方法:

    @Multipart
    @POST("avatar.ashx")
    Call<ResponseBody> getAvatar(@Header("Authorization") String auth,
                             @PartMap() Map<String, RequestBody> requestData);

使用方法:

    LinkedHashMap<String, RequestBody> requestData = new LinkedHashMap<>();
    RequestBody rb;
    rb = RequestBody.create(MediaType.parse("text/plain"), getSettings().getUserName());
    requestData.put("l", rb);
    rb = RequestBody.create(MediaType.parse("text/plain"), getSettings().getPassword());
    requestData.put("p", rb);
    mCall = getAvatarApiService().getAvatar(auth, requestData);