直接上代碼,xaml代碼就貼一個Image控件:
<Image Name="image" HorizontalAlignment="Left" Height="100" VerticalAlignment="Top" Width="100"/>
加載代碼也很簡單:
public ImportWindow()
{
InitializeComponent();
//圖檔位址的cookie
string cookie = "abtest=20170731114831940_65; mobilev=html5; downloadAppPlugIn_downCloseDate=1501473077298_86400000; guid=5786acf72feafd33a77eae9d9e475f39240b9e2d66b01848fe32886f8bc35b9b; shshshfpa=6563e0d9-1cec-0905-8c8f-1066978c7deb-1501473091; whwswswws=U6%2F4jUQFaa%2FLOnmIhn9mEM4lbCRoOqUXtpqaoxofJWhAp7SX6tDsOA%3D%3D; _jrda=1; TrackID=1LniGEEJTwAeWZoQVZcYPveu1zfMu2KFp3P9eOmsTDkaVJDNi2_k3dfUOt3OESuaTOmtFx6L0sBelTdp15kHkLp8bZx1hr7wzJeayWKUSZGk; pinId=FVd6lGAhM3h5HUZeAIYtf7V9-x-f3wj7; pin=jd_78e874d39dc63; unick=52005wpm; _tp=oxWZIWBwtDdSQnvZlRT9LIGj6fHnC1PW3J3xQyQl8vE%3D; _pst=jd_78e874d39dc63; unpl=V2_YDNtbUdQQUF9AREGfklcDGJRQFgSU0sddQpEAXsdXgVgAhtcclRCFXMUR11nGV0UZwMZWEpcQxVFCHZXfBpaAmEBFl5yBBNNIEwEACtaDlwJARRZRFNLFHIITl1LKV8FVwMTbUFfSxd0CkBcfylsAlczIl1EVEYRcjhHZHopHlE7ChRbQ1RKWHYATlZ6G1oNYzMTbUE%3d; __jdv=122270672|baidu-search|t_262767352_baidusearch|cpc|37575906198_0_463e98fc4a184cc4a599133d15316080|1502336952636; ipLoc-djd=1-72-2799-0; mt_xid=V2_52007VwAaWl9ZUFwXTSkMBGcERVBVX04NSx4aQAAwU0FOVQxWDQMbS1RWZlcaBQ1dB1kvShhcA3sCG05dWUNaH0IdXg5iBSJQbVhiWhxMEF4NYAUVYl5fWw%3D%3D; 3AB9D23F7A4B3C9B=IXJUEDXXYNUG6YED62OKBVQ7LGRQHMPTR44MH5CS75ECUCXMCIFCVTJCVKEOAUPXO5MC76L3OFA6NWVPAWT2CLCT3Q; https://m.jd.com?indexloc=1&sid=eca9ca08f981eaa929465178790539f0\"; m_uuid_new=559EE0955CDF39C603C8C45043D2708D; __jda=122270672.299303795.1501033309.1502336953.1502426875.4; __jdc=122270672; __jdu=299303795; autoOpenApp_downCloseDate_auto=1502426897076_1800000; sid=eca9ca08f981eaa929465178790539f0; recommendShow=show; mba_muid=299303795";
//擷取位址傳回的圖檔位元組資料
byte[] btyarray = GetImageFromResponse("https://plogin.m.jd.com/cgi-bin/m/authcode?mod=login&v=0.9968985103928236", cookie);
//位元組資料轉流
MemoryStream ms = new MemoryStream(btyarray);
//重點:設定Image控件的Source為流格式的圖檔資料
//摘自CSDN,17樓Error_Code回複,感謝!回答位址:
//http://bbs.csdn.net/topics/320086693
image.Source = BitmapFrame.Create(ms, BitmapCreateOptions.None, BitmapCacheOption.Default);
}
//從圖檔位址擷取圖檔位元組資料
public static byte[] GetImageFromResponse(string url, string cookie = null)
{
redo:
try
{
System.Net.WebRequest request = System.Net.WebRequest.Create(url);
if (!string.IsNullOrWhiteSpace(cookie))
{
request.Headers[System.Net.HttpRequestHeader.Cookie] = cookie;
}
System.Net.WebResponse response = request.GetResponse();
using (Stream stream = response.GetResponseStream())
{
using (MemoryStream ms = new MemoryStream())
{
Byte[] buffer = new Byte[1024];
int current = 0;
do
{
ms.Write(buffer, 0, current);
} while ((current = stream.Read(buffer, 0, buffer.Length)) != 0);
return ms.ToArray();
}
}
}
catch (System.Net.WebException ex)
{
if (ex.Message == "基礎連接配接已經關閉: 發送時發生錯誤。")
{
goto redo;
}
else
{
throw;
}
}
}