如何在Android上托管REST Web服务?

Fra*_*ein 7 api android web-services

有没有人知道用Java编写的能够在Android上托管REST服务的开源Web服务器?

我倾向于https://github.com/NanoHttpd/nanohttpd,但它需要从头开始编写Web服务框架.

PS.Websockets将是一个加号.PS2.我正在寻找托管解决方案而不是客户端,设备功能强大.

Dir*_*see 11

面对类似的问题,我们选择使用Koush的AndroidAsync:

https://github.com/koush/AndroidAsync

由于各种原因,这是一个非常方便的项目.除了支持websockets,你可以在几行中实现一个基本的POST或GET处理程序,并传递JSON,这就是我们所需要的.来自该github页面的示例(以相同的方式支持POST):

AsyncHttpServer server = new AsyncHttpServer();
List<WebSocket> _sockets = new ArrayList<WebSocket>();

server.get("/", new HttpServerRequestCallback() {
    @Override
    public void onRequest(AsyncHttpServerRequest request,   AsyncHttpServerResponse response) {
    response.send("Hello!!!");
    }
});

// listen on port 5000
server.listen(5000);
// browsing http://localhost:5000 will return Hello!!!
Run Code Online (Sandbox Code Playgroud)


Cha*_*ins 6

Android有许多第三方HTTP服务器.此外,由于API级别1 Android已经内置了HttpService:http://developer.android.com/reference/org/apache/http/protocol/HttpService.html.

任何HTTP服务器都"能够"REST.

如果你的意思是你想要一个用于Android的服务器端REST框架(ala JAX-RS或Restlet等),那么这是一个不同的前景,我不熟悉Android上开箱即用的那个(尽管它们可能确实存在) .原因是您通常不在移动设备上运行HTTP服务器.是的,你可以,并且在某些时候它很方便,但这不是一个常见的要求.

至于websockets,这是一个完全不同的问题,与REST无关(因此令人困惑?).Android上还有很多websocket impls(koush's,例如:https://github.com/koush/android-websockets).