我曾经在iOS中使用过Restkit。使用restkit,我可以使用rails服务器在iOS上做一些安静的事情。 (是的,rails不是休息的最佳选择,但通过一些调整,你可以使它像休息服务器一样)。
现在我正在寻找类似于Restkit的东西,但是对于Android。 Will Restlet能够胜任这项工作吗?
如果是这样,你能指出任何教程吗?很难找到Restlet-Android-Rails的教程
#n00b
到目前为止我尝试了什么
在我的主要活动创建中:
Engine.getInstance().getRegisteredConverters().add(new JacksonConverter());
ClientResource cr = new ClientResource("http://localhost:5000/api/feedback/30");
cr.setRequestEntityBuffering(true);
cr.accept(MediaType.APPLICATION_JSON);
FeedbackResource resource = cr.wrap(FeedbackResource.class);
Feedback feedback = resource.retrieve();
System.out.println(feedback);
我的FeedbackResource.java资源
package com.blablabla.backendResources;
import com.blablabla.model.Feedback;
import org.restlet.resource.Delete;
import org.restlet.resource.Get;
import org.restlet.resource.Put;
public interface FeedbackResource
{
@Get("json")
public Feedback retrieve();
@Put("json")
public void store(Feedback feedback);
@Delete
public void remove();
}
Feedback.java
package com.blablabla.model;
import java.io.Serializable;
public class Feedback implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
private String email;
private String comment;
public Feedback() {
super();
}
public Feedback(int id, String name, String email, String comment) {
super();
this.id = id;
this.name = name;
this.email = email;
this.comment = comment;
}
public int getId()
{
return this.id;
}
public void setId(int id)
{
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
所有失败:(但有卷曲:
curl -X GET -H "Accept:application/json" http://localhost:5000/api/feedback/30
响应:
{" ID":30,"名称":"""电子邮件":"" ,"评论":" Opino popo"}
正如@Caleryn建议的那样,我去了基础,只是试着去做,但即便如此,我也失败了:
错误:
05-21 10:08:36.762 669-669 / com.reserbus W / System.err:正在启动 内部HTTP客户端05-21 10:08:36.802 669-669 / com.reserbus W / System.err:尝试检测到可恢复的错误(1000) 再次在2000毫秒。 05-21 10:08:38.822 669-669 / com.reserbus W / System.err:尝试检测到可恢复的错误(1000) 再次在2000毫秒。 05-21 10:08:40.842 669-669 / com.reserbus W / System.err:连接错误(1000) - 连接器失败 连接到服务器05-21 10:08:40.852 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.doError(ClientResource.java:599) 05-21 10:08:40.852 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.handleInbound(ClientResource.java:1165) 05-21 10:08:40.852 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.handle(ClientResource.java:1060) 05-21 10:08:40.852 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.handle(ClientResource.java:1077) 05-21 10:08:40.852 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.handle(ClientResource.java:969) 05-21 10:08:40.862 669-669 / com.reserbus W / System.err:at org.restlet.resource.ClientResource.get(ClientResource.java:687)05-21 10:08:40.862 669-669 / com.reserbus W / System.err:at com.reserbus.MainActivity.onCreate(MainActivity.java:50)
代码
try {
System.out.println(new ClientResource("http://localhost:5000/api/feedback/30.json").get(MediaType.APPLICATION_JSON).getText());
} catch (Exception e) {
e.printStackTrace();
}