2016-02-25 27 views
0

我第一次使用RetroFit,所以它让我感到困惑。我想通过POST将JSON对象传递给服务器。但是我不知道如何制作改造库的模型类和方法。我的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对象或将它们放入一个ArrayList并将其传递给login()。

+0

这里是你的答案http://stackoverflow.com/a/ 21423093/2394266 – Huteri

+0

可能重复[如何在一个Retrofit请求的主体中张贴原始整个JSON?](http://stackoverflow.com/questions/21398598/how-to-post-raw-whole-json-in-一个改造请求) – Seelenvirtuose

+0

只需创建另一个具有Header和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原始的JSON)? – user2498079

+0

尝试在服务器端回显“my_object” – Darish