我正在使用restlet框架在android上构建rest http服务器。我正在使用最新的3.0-M1版本。我按照有关此视频https://www.youtube.com/watch?v=jmxVKC5qTVg&t=2140s的教程进行操作。我需要添加:
Engine.getInstance().getRegisteredServers().clear();
Engine.getInstance().getInstance().getRegisteredServers().add(new HttpServerHelper(null));
根据以下说明使服务器正常工作:Android - First run of Restlet 2.2 server - No available server connector
所以我的代码如下:
public static void runServer(int port) throws Exception{
Component component = new Component();
component.getServers().add(Protocol.HTTP, port);
Application application - new DataServer();
String contexRoot = "/dataserver";
component.getDefaultHost().attach(contexRoot, application);
component.start()
}
在主要方法中,我只调用runServer()。同样在视频中,我重写了createInboundRoot,这使我可以在“ root”资源之后添加资源,并通过具有批注的方式将其映射到将处理Get或Post方法的类。该代码如下所示:
public Restlet createInboundRoot(){
Router router = new Router(getContext());
router.attach("/year", YearResource.class);
return router;
}
所以我有两个问题:
如何创建没有“ root”资源的服务器,在这种情况下,没有数据服务器,例如,我只想http://address:port/year。
我如何发送响应,就像有人调用post方法并发送json,在其中他发送5个键值参数,并且要求他发送6,我想能够发送HTTP响应超过200 OK。
如果有人对这种东西有一些好的教程,基本上我只需要3个资源,其中的2个将由post方法调用,我需要检查参数,进行一些操作并返回json文件,以及HTTP响应。
感谢您提前提供所有帮助:D