Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从c#和#x27中读取html';不是受支持的编码名称错误_C#_Html_Asp.net Mvc - Fatal编程技术网

从c#和#x27中读取html';不是受支持的编码名称错误

从c#和#x27中读取html';不是受支持的编码名称错误,c#,html,asp.net-mvc,C#,Html,Asp.net Mvc,我正在尝试从c#中读取html,如下所示: public string getHTMLIcon() { string url = @"http://ddragon.leagueoflegends.com/cdn/7.5.1/img/profileicon/1258.png"; string data = string.Empty; HttpWebRequest request = (HttpWebRequest

我正在尝试从c#中读取html,如下所示:

      public string getHTMLIcon() {
            string url = @"http://ddragon.leagueoflegends.com/cdn/7.5.1/img/profileicon/1258.png";
            string data = string.Empty;

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream receiveStream = response.GetResponseStream();
                StreamReader readStream = null;

                if (response.CharacterSet == null)
                {
                    readStream = new StreamReader(receiveStream);
                }
                else
                {
                    readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                }

                data = readStream.ReadToEnd();

                response.Close();
                readStream.Close();
            }
            return data;
        }
但正在向我显示下一个错误:“”不是受支持的编码名称


如果我尝试在不使用编码的情况下获取html,我会得到下一个:‰PNG IHDR€L\öœgAMA±…

这里是我下载图像的方法:

        public static Stream DownloadImage(string url, string referer)
        {
            try
            {
                var u = new Uri(url);
                HttpWebRequest request;

                request = (HttpWebRequest)WebRequest.Create(u);

                request.Referer = referer;
                request.UserAgent = "userAgent";

                var response = (HttpWebResponse)request.GetResponse();
                if (response != null)
                {
                    return response.GetResponseStream();
                }
            }
            catch (WebException wex)
            {
                Logging.Write($"WEB ERROR {url} \n" + wex.Message);
                throw;
            }

            return null;
        }

    public static void DownloadImage(string url, string referer, string localFilePath)
    {
        Stream stream = DownloadImage(url, referer);

        using(FileStream file = File.Create(localFilePath))
        {
            stream.CopyTo(file);
        }
    }

下面是我下载图像的方法:

        public static Stream DownloadImage(string url, string referer)
        {
            try
            {
                var u = new Uri(url);
                HttpWebRequest request;

                request = (HttpWebRequest)WebRequest.Create(u);

                request.Referer = referer;
                request.UserAgent = "userAgent";

                var response = (HttpWebResponse)request.GetResponse();
                if (response != null)
                {
                    return response.GetResponseStream();
                }
            }
            catch (WebException wex)
            {
                Logging.Write($"WEB ERROR {url} \n" + wex.Message);
                throw;
            }

            return null;
        }

    public static void DownloadImage(string url, string referer, string localFilePath)
    {
        Stream stream = DownloadImage(url, referer);

        using(FileStream file = File.Create(localFilePath))
        {
            stream.CopyTo(file);
        }
    }

那么编码是必要的吗?如果我不使用,我会得到文本,但只在那个网页上,比如说在谷歌上没有。但是你要求的是PNG图像-文本编码是不相关的。不是在谷歌?我不知道你说的是什么意思。正如@DavidKemp所说,这是一幅图像,编码是不必要的。那么编码是必要的吗?如果我没有使用,我会得到文本,但只在那个网站上,比如在谷歌就没有。但是你要求的是PNG图像-文本编码是不相关的。不是在谷歌?我不知道你说的是什么意思。正如@DavidKemp所说,这是一个图像,编码是不必要的。
Stream.CopyTo
从.Net 4开始就可以使用,它将大大简化代码。是的,这实际上是我以前的.Net 2.0项目中的一段代码。我已经用stream.CopyTo更新了它,所以我删除了最后一个方法。现在真的简单多了;)如果您正在接受代码检查提示,
FileStream文件
应该在using语句中,您可以删除
file.Close()
调用,然后也可以调用
Stream.CopyTo
从.Net 4开始就可以使用,这将大大简化代码。是的,这实际上是我以前的.Net 2.0项目中的代码。我已经用stream.CopyTo更新了它,所以我删除了最后一个方法。现在真的简单多了;)如果您正在接受代码检查提示,
FileStream文件
应该在using语句中,您也可以删除
file.Close()
调用