2017-02-24 3 views
0

Ich bin mit Retrofit 2, und ich habe folgende Methode in meinem Dienst:Retrofit Änderung mehrteiliger Einträge Content-Type

@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); 

Der Server erwartet Anfrage mit Teilen mit

Content-Type: text/plain; charset=UTF-8 

Aber was Nachrüstung produziert in Anfrage ist

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

Gibt es eine Möglichkeit, den Content-Type zu ändern?

Antwort

0

Vielleicht braucht jemand, dass, so werde ich schreiben Abhilfe, die ich gefunden habe: Methode in meinem Dienst:

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

und Verwendung der Methode:

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);