Windows Phone 8.1 图片异步不更新
Windows Phone 8.1 Image Async Not Updating
我正在尝试从网络服务器异步读取图像。我第一次工作,但在下一次调用后图像只是闪烁,没有任何反应。
我尝试了其他方法,但得到了相同的结果。
如何正确更新图像?
public async void ReadNextPhoto(Image image)
{
// getimage returns a random string with the image url
var uri = new Uri("http://example.com/getimage.php");
var httpClient = new HttpClient();
// Always catch network exceptions for async methods
try
{
var result = await httpClient.GetStringAsync(uri);
var bi = new BitmapImage(new Uri(result));
image.Source = bi;
}
catch
{
// Details in ex.Message and ex.HResult.
}
}
谢谢,
乔纳森
编辑:
getimage.php 的答案是带有实际图像示例的字符串。com/random_image_01.jpg
Edit2:问题出在 httpClient,它总是 returns 相同的字符串。也许缓存?
在HttpClient
中默认启用缓存。据我所知,摆脱它的唯一方法是传递一个随机参数,所以它看起来像一个不同的请求,它不存在于缓存中。
var uri = new Uri("http://example.com/getimage.php?no-cache=" & DateTime.Now.Ticks.ToString());
我正在尝试从网络服务器异步读取图像。我第一次工作,但在下一次调用后图像只是闪烁,没有任何反应。
我尝试了其他方法,但得到了相同的结果。
如何正确更新图像?
public async void ReadNextPhoto(Image image)
{
// getimage returns a random string with the image url
var uri = new Uri("http://example.com/getimage.php");
var httpClient = new HttpClient();
// Always catch network exceptions for async methods
try
{
var result = await httpClient.GetStringAsync(uri);
var bi = new BitmapImage(new Uri(result));
image.Source = bi;
}
catch
{
// Details in ex.Message and ex.HResult.
}
}
谢谢, 乔纳森
编辑: getimage.php 的答案是带有实际图像示例的字符串。com/random_image_01.jpg
Edit2:问题出在 httpClient,它总是 returns 相同的字符串。也许缓存?
在HttpClient
中默认启用缓存。据我所知,摆脱它的唯一方法是传递一个随机参数,所以它看起来像一个不同的请求,它不存在于缓存中。
var uri = new Uri("http://example.com/getimage.php?no-cache=" & DateTime.Now.Ticks.ToString());