阅读.x 4.5的ashx jpg

时间:2012-11-09 03:13:20

标签: c# .net windows-phone .net-4.5 ashx

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

1 个答案:

答案 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 - 它确实有效。