My REST API is returning an image in the header ('Content-Type', 'image/png'). The image is stored as binary in SQL Server (data type: picture, stored in binary format). API's response is perfect as I have checked in Postman.
I want to display that image in Android. (I am using volley for Network requests.)
Any thoughts?
Thank you in advance.
EDIT1
Here is my slim REST API route that returns the image.
//get image
$app->get('/image', function ($request, $response) {
$conn = new PDO('sqlsrv:server =localhost; Database = dbName', 'dbUser', 'dbPass');
$sql = "SELECT Picture
FROM Table
WHERE Primary_Key = 'abc'";
$statement = $conn->prepare($sql);
$statement->execute();
$row = $statement->fetch(PDO::FETCH_ASSOC);
return $response->withHeader('Content-Type', 'image/png')->write($row['Picture']);}
EDIT2
Here is my API get request call using volley at Android end. This code resides in a Fragment. url is a String variable, profileImage is an ImageView where I want to use that fetched image.
url= getString(R.string.api_url) + "image";
request = new StringRequest(GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
byte[] byteArray = response.getBytes();
Bitmap bitmap =
BitmapFactory.decodeByteArray(byteArray,0,byteArray.length);
profileImage.setImageBitmap(bitmap);
} //onErrorResponse
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
error.printStackTrace();
}
}) {
};
queue = Volley.newRequestQueue(getActivity());
queue.add(request);