改造更改多部分条目内容类型
Retrofit change multipart entries Content-Type
我正在使用 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
但retrofit中产生的要求是
Content-Type: application/json; charset=UTF-8
有什么方法可以更改内容类型吗?
也许有人需要它,所以我会 post 我找到的解决方法:
我服务中的方法:
@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);
我正在使用 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
但retrofit中产生的要求是
Content-Type: application/json; charset=UTF-8
有什么方法可以更改内容类型吗?
也许有人需要它,所以我会 post 我找到的解决方法: 我服务中的方法:
@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);