2016-02-25 3 views
0

Я использую RetroFit в первый раз, поэтому меня это смущает. Я пытаюсь передать объект JSON на сервер через POST. Однако я не знаю, как сделать классы моделей и методы для модифицированной библиотеки. Моя JSON выглядит следующим образом:Параметры метода интерфейса RetroFit

{ 
    "Header": { 
    "UserDetails": "sample string 1", 
    "ClientCode": "sample string 2", 
    "Password": "sample string 3", 
    "ViewType": 0, 

    }, 
    "MemberDetails": { 
    "Username": "sample string 1", 
    "Password": "sample string 2", 
    "MemberNo": "sample string 3", 
    "MobileNo": "sample string 4" 
    } 
} 

У меня есть 2 генерировать классы моделей: Header and MemberDetails

Класс Интерфейс выглядит так:

public interface MyServerAPI { 
    @POST("users/memberlogin") 
    Call<> login(@Body WHAT_OBJECT_TO_PASS_HERE?); 
} 

Я не знаю, следует ли передать как заголовок и MemberDetails object или помещает их в ArrayList и передает это имя login().

класс
+0

Вот ваш ответ http://stackoverflow.com/a/ 21423093/2394266 – Huteri

+0

Возможный дубликат [Как выполнить POST raw JSON в теле запроса на доработку?] (Http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in- the-body-of-a-retrofit-request) – Seelenvirtuose

+0

Просто создайте еще один класс с заголовками и MemberDetails класс внутри. –

ответ

0

Интерфейс может быть, как это

public interface MyServerAPI { 
     @FormUrlEncoded 
     @POST("users/memberlogin") 
     Call<MyResponse> login(@Field("my_object") String myObject); 
    } 

Затем вы можете передать объект как JSON строки, как этот

String jsonString=new Gson().toJson(obj); 
Call<MyResponse> myResponse = myGithubApi.login(jsonString); 
+0

@ user2498079 попробуйте это – Darish

+0

Как я могу увидеть json (преобразованный из моделей в JSON raw GSON), отправляемый на сервер? – user2498079

+0

попробуйте «my_object» на стороне сервера – Darish

Смежные вопросы