[英]Restlet: Post with multiple parameters
请看下面的例子:
public interface ILoginResource {
@Post
public void login(String username, String password);
}
public class LoginServerResource extends ServerResource implements ILoginResource {
@Override
public void login(String username, String password) {
System.out.println("username = " + username);
System.out.println("password = " + password);
}
}
public static void main(String[] args) {
ClientResource loginResource = new ClientResource(url);
ILoginResource res = loginResource.wrap(ILoginResource.class);
res.login("TestUser","TestPassword");
}
输出为:
用户名= TestPassword
密码=空
我究竟做错了什么? 还是不能使用多个参数?
如您所料,确实不可能在单个调用中传递多个参数,而是可以引入如下消息类:
public class LoginRequest {
private String username;
private String password;
/**
* For deserialization.
*/
public LoginRequest() {
}
/**
* @param username
* The user's name
* @param password
* The password
*/
public LoginRequest(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "LoginRequest [username=" + username + ", password=" + password + "]";
}
}
并像这样修改您的资源:
public interface ILoginResource {
@Post
public void login(LoginRequest req);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.