Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Java REST cliente API para Android

Mi aplicación de servidor expone un servicio web RESTful usando JAX-RS (implementación de Jersey). ¿Cuál es la mejor manera de invocar este servicio (aparte de usar Apache HttpClient)? Me preguntaba si el cliente REST API de Jersey, Restlet, RESTeasy y otros marcos de trabajo en Android.

Gracias, Theo

  • JSON Cadena devuelta desde el servicio web SOAP que no contiene registros para la tabla
  • Recibir y validar certificado del servidor HTTPS - android
  • Android - ¿Cómo manejar Webservice en XML?
  • Cuál es el papel de la clave de la aplicación y la clave secreta en cada SDK
  • Obtener longitud desconocidaHttpInputStream al obtener InputStream de HttpURLConnection en android
  • Cómo crear una notificación push personalizada usando asp.net webservice?
  • ¿Hay alguna forma sólida de hacer frente a la autenticación integrada de Windows (NTLM) desde una aplicación de Android?
  • ¿La mejor práctica para implementar retroalimentación de retorno a la actividad recreada?
  • 5 Solutions collect form web for “Java REST cliente API para Android”

    Resteasy-mobile es una solución perfecta.

    Es básicamente resteasy soplado completo (que tiene marco de cliente) pero utiliza Apache HTTP Client en lugar de HttpURLConnection (que no existe en android)

    Aquí hay más información sobre el uso (http://docs.jboss.org/resteasy/docs/2.3.1.GA//userguide/html_single/index.html#RESTEasy_Client_Framework)

    Aquí está para el maven

    <dependency> <groupId>org.jboss.resteasy.mobile</groupId> <artifactId>resteasy-mobile</artifactId> <version>1.0.0</version> </dependency> 

    Un pequeño código de ejemplo en el lado de Android

      public class RestServices { static RegisterSVC registerSVC; static PushSVC pushSVC; static TrackerSVC trackerSVC; RestServices() { RegisterBuiltin.register(ResteasyProviderFactory.getInstance()); } public static RegisterSVC getRegisterSVC() { return ProxyFactory.create(RegisterSVC.class,"http://143.248.194.236:8080/notification"); } public static PushSVC getPushSVC() { return ProxyFactory.create(PushSVC.class,"http://143.248.194.236:8080/notification"); } public static TrackerSVC getTrackerSVC() { return ProxyFactory.create(TrackerSVC.class,"http://143.248.194.236:8080/notification"); } } 

    Definición de servicio JAX-RS (PushSVC.java) tanto en Android como en el servidor

     @Path("/mobile") public interface PushSVC { /* Sample curl --data '{"collapseKey":"asdf","contentList":{"aaaa":"you","ssss":"you2"}}' -X POST -H 'Content-type:application/json' -v http://localhost:8080/notification/mobile/11111/send */ @POST @Path("/{uuid}/send") @Consumes(MediaType.APPLICATION_JSON) String sendPush( MessageVO message, @PathParam("uuid") String uuid); } 

    Modelo MessageVO definición

     public class MessageVO { String collapseKey; HashMap<String, String> contentList; public MessageVO() { } public MessageVO(String collapseKey) { this.collapseKey = collapseKey; contentList = new HashMap<String, String>(); } public void put(String key, String value) { this.contentList.put(key,value); } public String getCollapseKey() { return collapseKey; } public HashMap<String, String> getContentList() { return contentList; } } 

    Esta es la invocación de método en android

     public class Broadcast extends AsyncTask<Context,Void,Void> { @Override protected Void doInBackground(Context... contexts) { MessageVO message = new MessageVO("0"); message.put("tickerText","Ticker ne` :D"); message.put("contentTitle","Title ne` :D"); message.put("contentText","Content ne` :D"); RestServices.getPushSVC().sendPush(message,TrackInstallation.id(contexts[0]).toString()); return null; } } 

    Esto es bastante simple y todos los códigos escritos son reutilizables, el código estandarizado está cerca de la inexistencia

    Espero que esto ayude a todos.

    Si desea un poco más de comodidad que tener que lidiar con URLConnection, echa un vistazo a Resty for Java. Simple, ligero, pero todavía bastante nuevo.

    http://beders.github.com/Resty

    Funcionó en este el otro día, no lo he intentado todavía pensamiento, pero parece trabajar en androide: http://crest.codegist.org

    Aquí hay un buen ejemplo que contiene códigos fuente de todo, incluyendo EJBs, RestEasy y Android:

    http://code.google.com/p/android-jbridge/

    Para los casos más simples, sólo puede utilizar java.net.URL y su método openConnection () para realizar una solicitud. Y luego las bibliotecas de enlace de datos (JAXB para XML, Jackson para JSON) para manejar la respuesta (y, posiblemente, solicitar si POST xml o json).

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.