Sie es falsch machen, wenn Sie Multipart als Körper-Typ sind Sie mit Körper-Typ jeder Anforderung Parameter angeben müssen.
Zum Beispiel senden Sie Datei (Bild, Video usw.) und String-Parameter. Sie müssen also alle Parameter angeben und in einen bestimmten Körpertyp konvertieren.
Sie müssen Parameter in zwei Teile zu unterteilen,
1) MultipartBody - Für Mediendatei
2) RequestBody - Für andere Zeichenfolge oder anderen Datentyp Parameter
z.B.
/*Create API Method*/
@Multipart
@POST("apiurl")
Call<Object> callMethodName(@Part("mobile_no") RequestBody mobile_no, /*String param */
@Part("password") RequestBody password, /*String param */
@Part MultipartBody.Part profile_img /*file param */);
Ich habe Parse-Typ als multipart/form-data
definieren, Sie nach Ihren Anforderungen definieren können,
public static final String MULTIPART_TYPE = "multipart/form-data";
nun wie unten Anforderungsparameter erstellen, /* Hinzufügen String Params */ RequestBody reqNumber = RequestBody.create (MediaType.parse (Konstanten.MULTIPART_TYPE), number.toString()); RequestBody reqPass = RequestBody.create (MediaType.parse (Konstanten.MULTIPART_TYPE), pass.toString());
/* Adding File*/
File file = new File(selectedImagePath);
RequestBody requestFile = RequestBody.create(MediaType.parse(Constants.MULTIPART_TYPE), file);
bodyFile = MultipartBody.Part.createFormData("profile_img", file.getName(), requestFile);
Als letzten Schritt müssen Sie Anforderungsparameter zu API-Aufruf Methode wie unten passieren, so kann es Parameter identifizieren und an den Server senden.
/* Call API Method */
RestClient.getApiClient().callMethodName(reqNumber, reqPass, bodyFile);