我正在使用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
有没有办法改变内容类型?
答案 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);