1

我的目标是从 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 应用程序中。

4

1 回答 1

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 中对我来说工作得很好。

顺便说一句,我看到你设置了 image/jpg 的 Accept 标头,ASHX 似乎将 Content-type 设置为 image/jpeg - 但它确实有效。

于 2012-11-09T05:13:21.653 回答