我正在开发一个使用需要登录的RESTful Web服务的应用程序。此登录信息已通过会话Cookie验证,并使用WebClient
下载任何数据,我使用了以下扩展程序:
public class CookieWebClient : WebClient
{
[SecuritySafeCritical]
public CookieWebClient() : base()
{
}
protected override WebRequest GetWebRequest(Uri address)
{
var request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = App.GlobalCookieContainer;
}
return request;
}
}
但是,返回的一些数据是用于显示在不同ListBoxes
中的图像缩略图的URI。在我必须使用登录进行Web服务之前,我只是将ImageSource
绑定到数据中的指定URI:
<Image Source="{Binding Icon_Url}" />
但是,现在我必须使用登录,我必须在获取图像时提供cookie。因此,我认为IValueConverter
可以做到这一点,我会传入URI,然后用我的扩展BitmapImage
下载WebClient
,直到我重新计算我只能在WP7上使用WebClient
进行异步调用。
如何下载Image
中必须在请求中包含Cookie的LisBoxItem
个控件的图像?
谢谢!
答案 0 :(得分:0)
您可以使用http类下载图像并手动设置图像:
var stream = httpResponse.GetResponseStream();
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
image.Source = bitmap;
但这不适用于简单的XAML绑定...(但你可以将这个逻辑包装在附加属性中)