我是Android注释的新手,我对AA api的REST客户端实现有多处混淆。这是我正在使用的代码:
@Rest(rootUrl = "http://something.com", converters = {MappingJackson2HttpMessageConverter.class})
public // if defined, the url will be added as a prefix to every request
interface RESTClient extends RestClientHeaders {
@Post("/isec/api/user/login ")
@Accept(MediaType.APPLICATION_JSON)
void LoginUser(@Field String email,@Field String password,@Field String type);
}
和预期的JSON响应是:
{
"status": false
"message": "Verify your account to continue"
"verified": "n"
"type": "STUDENT"
"apikey": "4o0k8sg4g8ckkswskkowcog80gog4gso0g00kogo"
}
现在我的问题是:
1 - 我在哪个变量中得到回复JSON
?
2 - 解析我的回复JSON
的最佳方法是什么,因为我对同一网址的不同参数有不同的回复,所以我无法创建一个类来处理响应?
3 - @Path
,@field
注释之间的主要区别是什么?
提前致谢
答案 0 :(得分:0)
@Rest(rootUrl = "http://something.com", converters = {MappingJackson2HttpMessageConverter.class})
public // if defined, the url will be added as a prefix to every request
interface RESTClient extends RestClientHeaders {
@Post("/isec/api/user/login ")
@Accept(MediaType.APPLICATION_JSON)
YourResponseClass LoginUser(@Field String email,@Field String password,@Field String type);
}
在这种情况下,答案将被解析为杰克逊的班级。
@Path
用于网址变量,@Field
用于表单输入。第一个被替换为URL,第二个被添加到请求体中,形式为url编码参数。请阅读维基,它有详细的例子。