Biblioteca de Android Volley: ¿Cómo enviar una imagen al servidor?

¡Hola chicos!

tengo unjpg image stored on my device y quierosent it to server(mywebsite.com/api.php). Me gustaria usarvolley library porque está hecho por desarrolladores oficiales de Android de Google y creo que lo agregarán al SDK lo antes posible.

En este momento estoy usando el siguiente código para enviar cadenas al servidor:

 postRequest = new StringRequest(Request.Method.POST, url,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                    try {
                        // code here for response
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    // code here for error response
                }
            }
    ) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            // the POST parameters:
            params.put("key", "myApiKey");
            params.put("data","stringOfMyData");
            return params;
        }
    };

¿Cómo podría enviar el jpg al servidor con la biblioteca volley? Cada vez que envío algo necesito enviarlo junto con la clave API para recibir información al servidor, por lo que no puedo cambiarMap<String, String> aMap<String, File> porque mi clave API es una cadena.

He leído que hay una solución para cambiar mi imagen a unabyte[] array y luego convertirlo en unbase64 string formato, pero me gustaría evitar esto si es posible.

¿Hay alguna otra solución para enviar la imagen sin convertirla en unbase64 string?

Cualquier referencia o consejo es bienvenido! ¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta