I’m trying to retrieve image file from my local server.
Here is my (very simple) php request :
get_image.php
<?php
header("Content-type: image/*");
$images_folder = "uploads/";
$image_name = $_GET['image_id'];
$image_url = $images_folder . $image_name;
if (!readfile($image_url))
echo "Error loading file";
?>
If I run this in a browser :
draw_image.php
<img src="get_image.php?image_id=<?php echo $_POST["image_id"]?>" alt="Image"/>
I get my picture drawn.
Now, how to retrieve this image in android application ?
Here is my code for the moment :
public void GetUserPicture() throws Exception, NumberFormatException
{
try
{
String str_image_id = Utils.FromStringToMd5(askme_user.GetLogin() + Utils.SALT);
HttpPost post = new HttpPost("http://192.168.0.7/askme/draw_image.php");
List<NameValuePair> php_question = new ArrayList<NameValuePair>();
php_question.add(new BasicNameValuePair("image_id", str_image_id));
post.setEntity(new UrlEncodedFormEntity(php_question, "UTF-8"));
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
HttpEntity res_entity = response.getEntity();
Log.i(TAG, "Status line : " + response.getStatusLine());
if (res_entity != null) Log.i(TAG, EntityUtils.toString(res_entity));
if (res_entity != null) res_entity.consumeContent();
}
catch (Exception e)
{
Log.e("[GET REQUEST]", "Network exception");
}
}
and here is the current log i’m receving from HttpResponse :
Status line : HTTP/1.1 200 OK
<img src="get_image.php?image_id=971c4623a86a4cbac2f1deffaf3c40" alt="Image"/>
I’m kind of stuck here, I don’t know what to to next…
EDIT : Thanks to caner, here is my final code,
String url = "http://192.168.0.7/askme/get_image.php";
if (!url.endsWith("?"))
url += "?";
String str_image_id = Utils.FromStringToMd5(askme_user.GetLogin() + Utils.SALT);
List<NameValuePair> params = new LinkedList<NameValuePair>();
params.add(new BasicNameValuePair("image_id", str_image_id));
String str_params = URLEncodedUtils.format(params, "UTF-8");
url += str_params;
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet();
request.setURI(new URI(url));
HttpResponse response = client.execute(request);
InputStream is_image = response.getEntity().getContent();
Drawable drawable = Drawable.createFromStream(is_image, "user_picture");
return drawable;
Change
HttpPosttoHttpGet