【发布时间】:2012-09-20 21:47:59
【问题描述】:
我想实现一种将图像从网站下载到笔记本电脑的方法。
public static void DownloadRemoteImageFile(string uri, string fileName)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if ((response.StatusCode == HttpStatusCode.OK ||
response.StatusCode == HttpStatusCode.Moved ||
response.StatusCode == HttpStatusCode.Redirect) &&
response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase))
{
//if the remote file was found, download it
using (Stream inputStream = response.GetResponseStream())
using (Stream outputStream = File.OpenWrite(fileName))
{
byte[] buffer = new byte[4096];
int bytesRead;
do
{
bytesRead = inputStream.Read(buffer, 0, buffer.Length);
outputStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
}
}
}
但request 或response 的ContentType 不是“image/jpg”或“image/png”。它们总是“文本/html”。我想这就是为什么我将它们保存到本地后,它们的内容不正确,我无法查看它们。
任何人都可以在这里找到解决方案吗? 谢谢
【问题讨论】:
-
您可能希望将代码放入代码块中并确保其格式正确。现在很难阅读。
-
谢谢,我是新手,我正在学习正确地发布问题。很抱歉给您带来不便。
-
你要传入什么网址?如果 url 没有托管 jpeg,您将获得它托管的任何内容。或者可能是该网站需要身份验证才能下载图像。
-
@feroze:这是示例网址。我认为它托管 jpg 文件 interfacelift.com/wallpaper/7yz4ma1/03085_steam_1366x768.jpg
标签: c# httpwebrequest httpwebresponse