Usando retrofit con persistencia de Cookie
Yo, yo estoy usando retrofit y me pregunto cómo manejar de forma transparente la cookie de sesión. Para eso extiendo el ApacheClient dado y uso un CookieStore en la llamada personalizada a ApacheClient.execute (HttpClient, HttpUriRequest):
Client client = new ApacheClient() { final CookieStore cookieStore = new BasicCookieStore(); @Override protected HttpResponse execute(HttpClient client, HttpUriRequest request) throws IOException { // BasicHttpContext is not thread safe // CookieStore is thread safe BasicHttpContext httpContext = new BasicHttpContext(); httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); return client.execute(request, httpContext); } }; RestAdapter restAdapter = new RestAdapter.Builder() .setServer(API_URL) .setClient(client) .build();
¿Existe una mejor manera de hacer esto con la API de actualización (sin extensión HttpClient)?
- Cómo implementar un WebSocket con Retrofit + RX
- Descargar vídeo de Url con Retrofit
- ¿Cómo puedo interceptar un objeto observable y modificarlo en RxJava antes de volver al suscriptor?
- Cómo manejar la rotación con Retrofit y RxJava / RxAndroid en Actividad?
- Retrofit "IllegalStateException: Ya ejecutado"
- Añadir cookies para la actualización de 2 solicitudes
- ¿Tenemos alguna posibilidad de detener la solicitud en OkHttp Interceptor?
- Analizar manualmente parte de una respuesta al utilizar Retrofit
- RxJava + retrofit, obtenga una lista y agregue información adicional para cada artículo
- HTTP GET con el cuerpo de la solicitud RETROFIT
- Cómo realizar una prueba de unidad
- No vuelva a ejecutar la llamada de Retrofit si todavía está en curso con RxJava 2
- Obtenga el código de estado de la respuesta utilizando Retrofit 2.0 y RxJava
A partir de API 9 tiene java.net.CookieManager
y puede establecer el controlador de cookies de todo el sistema de esta manera:
CookieManager cookieManager = new CookieManager(); cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ALL); CookieHandler.setDefault(cookieManager);
Sí, el cliente Apache Http utiliza su propio mecanismo de gestión de cookies. Pero no debería ser el problema porque a partir de la API 9 HttpURLConnection se recomienda el cliente HTTP. Si utiliza Retrofit de Square, también le gustará su implementación de OkHttp lib – custom URLConnection con muchas funciones útiles.
- Uso de MessagePack con Android
- ¿Cuál es la mejor manera de descargar archivos de net programatically en android?