我正在尝试从本地服务器检索图像文件。
这是我的(非常简单的)php请求:
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";
?>
如果我在浏览器中运行它:
draw_image.php
<img src="get_image.php?image_id=<?php echo $_POST["image_id"]?>" alt="Image"/>
我画了我的照片。
现在,如何在Android应用程序中检索此图像? 这是我目前的代码:
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");
}
}
这是我从HttpResponse接收的当前日志:
Status line : HTTP/1.1 200 OK
<img src="get_image.php?image_id=971c4623a86a4cbac2f1deffaf3c40" alt="Image"/>
我有点被困在这里,我不知道下一步该怎么做......
编辑:感谢caner,这是我的最终代码,
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;
答案 0 :(得分:2)
将HttpPost
更改为HttpGet
答案 1 :(得分:0)
//declaration
boolean net;
//imageUrl you specify
String imageUrl="";
imageUrl=?;
//code
net = isOnline();
if (net == true) {
if (imageUrl != null)
try {
// where imageUrl is what you pulled out from the rss
// feed
Bitmap bitmap = BitmapFactory
.decodeStream((InputStream) new URL(imageUrl.getContent());
if (bitmap != null) {
imageview.setImageBitmap(bitmap);
}
} catch (MalformedURLException e1) {
// log exception here
} catch (IOException e1) {
Log.e("...............................", "" + e1);
// log exception here
}
}
//method
public boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) this
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = cm.getActiveNetworkInfo();
return activeNetworkInfo != null;
// return cm.getActiveNetworkInfo().isConnected();
}