Retrofit 2 nur mit Formulardaten
Ich versuche, mit Retrofit 2 eine POST-Anfrage zu stellen. Der Anfragetyp istform-data
NICH application/x-www-form-urlencoded
.
Ich poste nur Daten, nicht die Dateien in der Anfrage, und die Antwort hat die Form von JSON.
Ich habe versucht@FormUrlEncoded, @Multipart
aber es funktioniert nicht.
Ich habe versucht, folgende Anfrage
1. Erster Versuc
@FormUrlEncoded
@POST("XXXX")
Call<PlanResponse> getPlanName(@Field(Constants.ACTION_ID) String actionId, @Field(Constants.OFFER_CODE) String offerCode);
2. Zweiter Versuc
@Headers({"Content-Type: multipart/form-data","Content-Type: text/plain"})
@FormUrlEncoded
@POST("XXXX")
Call<PlanResponse> getPlans(@Body @FieldMap(encoded = false) Map<String, String> data);
3. Dritter Versuch
@Headers("Content-Type: multipart/form-data")
@Multipart
@POST("XXXX")
Call<PlanResponse> myPlans(@Part(Constants.ACTION_ID) String actionId, @Part(Constants.OFFER_CODE) String offerCode);
Ich bekomme nur den Körper alsNul. Es arbeitet mit dem POSTMAN.
Ich habe auch nach @ gesucform-data
undapplication/x-www-form-urlencoded
und festgestellt, dass, wenn die Daten binär sind, dann @ verwendform-data
und wenn die Daten ASCII sind, dann benutzeapplication/x-www-form-urlencoded
Ich versuche zu findenIst Formulardaten vom Retrofit nicht unterstützt?
POSTMAN Anfrage
Cache-Control: no-cache
Postman-Token: XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX
Content-Type: multipart/form-data; boundary=---- WebKitFormBoundaryXXXXXXXXXXXX
----WebKitFormBoundaryXXXXXXXXXXXX
Content-Disposition: form-data; name="actionId"
1000
----WebKitFormBoundaryXXXXXXXXXXXX
Content-Disposition: form-data; name="offerCode"
MYCODE
----WebKitFormBoundaryXXXXXXXXXXXX
Ich kann nur von POSTMAN @ abgeschnittenen HTTP-generierten Code hinzufüge