¿Cómo alojar REST webservices en Android?
¿Alguien sabe un servidor web de código abierto, escrito en Java, capaz de recibir servicios REST en Android?
Estoy inclinado hacia https://github.com/NanoHttpd/nanohttpd , pero requeriría escribir el marco de servicios Web desde cero.
- StrictMode anterior 2.3
- ¿Cómo puedo hacer una aplicación Java utilizando la API Monkeyrunner?
- Actualizar ADT de 21.0 a 21.1
- Android Api para Skype?
- Error 403 con acceso a Google Translate v2 API
PD. Websockets sería una ventaja. Ps2. Estoy buscando una solución de hosting no un cliente y el dispositivo es bastante poderoso.
- La mejor manera de proteger la API REST privada sin la autenticación de usuarios para aplicaciones para móviles
- Registro de Android SDK muestra: "Descarga interrumpida: Conexión a https://dl-ssl.google.com rechazado", ¿qué se puede hacer?
- ¿Cómo leer los mensajes de USSD en android?
- Cómo consumir Web Api en la aplicación xamarin CrossPlatform
- YouTube Player API en android ya no funciona bien
- API de calendario de Android vs API de proveedor de calendario
- Hook Android Sytem API relacionados con la salida de texto
- Android TimePicker no se muestra bien en modo horizontal
Enfrentando un problema similar, optamos por ir con AndroidAsync de Koush:
https://github.com/koush/AndroidAsync
Este es un proyecto muy práctico para una variedad de razones. Además de soportar websockets puedes, en pocas líneas, implementar un controlador POST o GET básico y pasar JSON alrededor del cual es el tipo de todo lo que necesitábamos. Ejemplo de esa página github (soporta POST de la misma manera):
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!!!
Hay muchos muchos servidores HTTP de terceros para Android. Además, desde que el API de nivel 1 Android ha tenido HttpService: http://developer.android.com/reference/org/apache/http/protocol/HttpService.html incorporado.
Cualquier servidor HTTP es "capaz de" REST.
Si quieres decir que quieres un framework REST de servidor para Android (ala JAX-RS o Restlet o tal) entonces eso es un prospecto diferente y no estoy familiarizado con uno que saldrá de la caja en Android (aunque probablemente existan) . La razón de ello es que normalmente no ejecuta el servidor HTTP en un dispositivo móvil. Sí, se puede, y en ocasiones es útil, pero no es un requisito común.
En cuanto a websockets, que es una pregunta totalmente diferente, y no tiene nada que ver con REST (por lo que es confuso?). También hay muchos impls websocket para Android (koush's, por ejemplo: https://github.com/koush/android-websockets ).
Si su intención en el alojamiento de su webservices desde el dispositivo Android. Es un caso inusual, pero el marco de restlet tiene un componente de servidor que se ejecuta en android. Realizar el pedido http://restlet.org/learn/guide/2.2/editions/android/ .
No requiere un servidor web separado y es bastante pobre. No lo he probado como un servidor androide personalmente, así que no puedo dar fe de lo bien que funciona allí, pero lo he utilizado independiente y en appengine.
Deberías salirse con la suya como si sólo estuvieras envolviendo código debajo de un servicio de Android
Component serverComponent = new Component(); serverComponent.getServers().add(Protocol.HTTP, 8080); final Router router = new Router(serverComponent.getContext().createChildContext()); router.attach("/myrestendpoint", MyServerResource.class); serverComponent.getDefaultHost().attach(router); serverComponent.start();