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


Agregar encabezados de autenticación a NetworkImageView en Volley

Yo uso Volley y NetworkImageView. Esto ha funcionado muy bien para varios proyectos. Sin embargo, necesito enviar token de autenticación en los encabezados para mi solicitud de imagen ahora. ¿Cuál es la mejor manera de hacer esto? En mis peticiones normales sobrescribo getHeaders () y pongo mi token de esa manera. Pero ImageLoader que es lo que utiliza NetworkImageView genera una solicitud genérica, por lo que es difícil añadir encabezados …

  • Volley - descarga directamente al archivo (no en la matriz de memoria byte)
  • Parse Android Volley respuesta JSONArray
  • Android Volley Null Pointer Exception
  • Registros detallados de depuración con Volley
  • Android Volley, duplicado Set-Cookie se reemplaza
  • ¿Cómo subir el archivo usando la biblioteca Volley en android?
  • Mejores prácticas de token de Android OAuth2 Bearer
  • Cómo importar certificado SSL autofirmado a Volley en Android 4.1+
  • Volley - descarga directamente al archivo (no en la matriz de memoria byte)
  • Volley Android Networking Library
  • La carga / descarga de imágenes de Android con Base64 en JSON provoca errores de memoria insuficiente
  • Java.lang.IllegalStateException: Fragmento no adjunto a la actividad
  • 2 Solutions collect form web for “Agregar encabezados de autenticación a NetworkImageView en Volley”

    He encontrado una solución. Para utilizar NetworkImageView necesita crear un cargador de imágenes. En este punto del código, acaba de superar el método makeImageRequest() de ImageLoader y dentro de makeImageRequest() , sobre el método getHeaders() de 'ImageRequest':

     imageLoader = new ImageLoader(requestQueue, new ImageLoader.ImageCache() { private final LruCache<String, Bitmap> cache = new LruCache<String, Bitmap>(20); @Override public Bitmap getBitmap(String url) { return cache.get(url); } @Override public void putBitmap(String url, Bitmap bitmap) { cache.put(url, bitmap); } }) { @Override protected Request<Bitmap> makeImageRequest(String requestUrl, int maxWidth, int maxHeight, final String cacheKey) { //return super.makeImageRequest(requestUrl, maxWidth, maxHeight, cacheKey); return new ImageRequest(requestUrl, new Response.Listener<Bitmap>() { @Override public void onResponse(Bitmap response) { onGetImageSuccess(cacheKey, response); } }, maxWidth, maxHeight, Bitmap.Config.RGB_565, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { onGetImageError(cacheKey, error); } }) { @Override public Map<String, String> getHeaders() throws AuthFailureError { HashMap<String, String> params = new HashMap<String, String>(); params.put("Authorization", YOUR_TOKEN); return params; } }; } }; 

    Esto es técnicamente una línea de código 🙂 He probado esto y funciona para mí.

    No he encontrado una manera fácil de hacer esto. He bifurcado Volley para lograr lo que necesitaba. Siéntase libre de usar si lo necesita.

    https://github.com/leofirespotter/ubervolley

    También se agrega aquí está haciendo un redondeado NetworkImageView copiado de ( http://solutionforandroid.blogspot.com/2013/12/rounded-networkimageview-using-volley.html )

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