2016-01-29 10 views
9
@POST("api/login") 
Call<ApiResponse> loginUser(@Body String user); 

Qui la stringa è in realtà un JSONstring cioèCome passare stringa nel parametro 'corpo' di Retrofit 2 in Android

{"email":"[email protected]","password":"test"} 

Couldnt capire cosa c'è di sbagliato in questo. O la stringa nuovamente convertita in json. Si prega di suggerire ..

Questo è quello che voglio fare alla mia richiesta, come mostrato in figura.

enter image description here

+0

è quella la risposta? Qual è il contenuto di ApiResponse? – Blackbelt

+0

No, questa non è la risposta. Questi dati devono essere inviati a @body per ottenere la risposta. –

+0

Non sono sicuro di poter inviare JSON così. Immagino che verrebbe convertito di nuovo. Per favore, vedi la mia risposta nel modo in cui la sto usando. – Rohit5k2

risposta

15

Convertire i dati in oggetto

public class Credentials 
{ 
    public String email; 
    public String password; 
} 

impostare i dati di opporsi

Credentials loginCredentials = new Credentials(); 
loginCredentials.email = "[email protected]"; 
loginCredentials.password = "password"; 

Chiamate il vostro api

@POST("api/login") 
Call<ApiResponse> loginUser(@Body Credentials credentials); 
+1

Non voglio usare la classe 'data model' per inviare il json al corpo. Sto cercando un'alternativa. –

+0

@RanjanaDangol Ok, allora converti questo make 'JSON' usando' GSON' e lo salviamo in 'String' –

+1

@RanjanaDangol: Non è stato menzionato nel tuo post. Non importa. : D – Rohit5k2

8
@POST("api/login") 
Call<ApiResponse> loginUser(@Body HashMap<String, String> user); 

Possiamo usare Hasmap qui in questo modo.

Problemi correlati