我目前正在为Android应用程序使用改造。 这对我来说是非常新颖的,我试图找出处理简单请求而不会变得混乱的最佳方法。Java - 改进2请求良好实践
我的客户正在使用JSON(改造的JacksonConverter)与我的服务器进行通信。 所以现在,我终于实现了这样的事情:
public interface MyWebService {
class RequestLogin {
public String email;
public String hash;
public RequestLogin(String email, String hash) {
this.email = email;
this.hash = hash;
}
}
@POST("/login")
Call<String> login(@Body RequestLogin body);
}
public void someFunction() {
Call<String> call = serviceInstance.login(new RequestLogin("some_mail", "some_hash"));
}
在这里你可以看到我的/login
路线需要一个简单的JSON:
{
"email": "some_email_here",
"hash": "some_passwd_hash_here"
}
,并返回体内一个简单的字符串。
这并不坏,但恐怕事情会随着时间变得混乱。
正在创建一个对象是使用改造在请求正文内部使用JSON的唯一方法吗?
也许有办法做这样的事情,而不是:
@POST("/login")
Call<String> login(@MagicTag String email, @MagicTag String hash);
我可能会从库的Javadoc丢失,但该网站是不是当你从来没有使用过非常明确的。如果存在,我没有找到任何使用它的示例。
感谢您的回答。我认为@FormUrlEncoded被用来暗示在URL中添加参数,而不是在JSON中添加参数。我会尽快尝试,并让你知道 – Ganitzsh
@Ganitzsh在这个:)的任何更新? – jadkachmar
抱歉,延迟。我试过了,它不起作用。正如预期的那样,它将作为表单发送到服务器,而不是发送到请求的正文中。 – Ganitzsh