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

Oto ciąg jest faktycznie JSONstring tjJak przekazać ciąg w parametrze "ciało z Retrofit 2 w android

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

Nie mogłem dowiedzieć się, co jest złego w tym. Albo ciąg ponownie przekształcony w json. Proszę zasugerować ..

Oto, co chcę zrobić na moją prośbę, jak pokazano na rysunku.

enter image description here

+0

czy to jest odpowiedź? Jaka jest zawartość ApiResponse? – Blackbelt

+0

Nie, to nie jest odpowiedź. Dane te należy wysłać do @body, aby uzyskać odpowiedź. –

+0

Nie jestem pewien, czy możesz wysłać JSON w ten sposób. Sądzę, że znowu się nawrócą. Proszę zobaczyć moją odpowiedź na sposób, w jaki ją używam. – Rohit5k2

Odpowiedz

15

Konwersja danych w obiekcie

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

Ustaw dane do obiektu

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

Zadzwoń do api

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

Nie chcę używać klasy "model danych", aby wysłać json do ciała. Szukam alternatywy. –

+0

@RanjanaDangol Ok następnie przekonwertuj to, aby 'JSON' użył' GSON' i zapisał go w 'String' –

+1

@RanjanaDangol: Nie było wspomniane w tobie. Nieważne. : D – Rohit5k2

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

Możemy używać Hasmap tutaj.