我的目标是从ashx Url中读取jpg文件。我想用Windows Phone 8做这个,但我从.Net 4.5开始,因为这对我来说可能更简单。
这是一个示例网址: http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=239959&type=card
如果你在IE 10中访问此Url,你会看到一张图片。如何在.Net 4.5中下载图像?我尝试过使用:
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("image/jpg"));
string resourceAddress = "http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=239959&type=card";
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, resourceAddress);
HttpResponseMessage response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseContentRead);
byte[] responseBytes = await response.Content.ReadAsByteArrayAsync();
并使用WebClient
string url = @"http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=220041&type=card";
byte[] imageData;
using (WebClient client = new WebClient())
{
imageData = client.DownloadData(new Uri(url));
}
这两种方法都不返回任何数据。如何获取数据并将其格式化为jpg?我是使用ashx文件的新手。我发现它们在Asp.Net网站上很容易使用,但却找不到任何允许简单下载文件的内容。目标是下载jpg文件并将其显示在Windows Phone 8应用程序中。
答案 0 :(得分:0)
看看那个网址。你有URL编码&,所以确实没有从
返回http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=220041&type=card
此
http://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=220041&type=card
但是,使用您的第一个代码示例在Windows 8中工作得很好。
顺便说一下,我看到你设置了一个图像/ jpg的Accept标头,ASHX似乎将Content-type设置为image / jpeg - 它确实有效。