Изображение не открывается при загрузке с URL - PullRequest
0 голосов
/ 25 декабря 2018

URI изображения https://statics.teams.microsoft.com/evergreen-assets/stickerassets/teamsquatch-250x250/Teamsquatch_EmailOverload.png это изображение открывается в браузере, но когда я скачал его, используя следующий код c #, загруженный файл не открывается в средстве просмотра изображений.

Я что-то пропустил?

public  void DownloadFile(string requestUri, string downloadFilePath, TimeSpan requestTimeout, string token = null)
        {
            using (var webResponse = GetWebResponse(requestUri, requestTimeout, token))
            {
                using (var streamReader = webResponse.GetResponseStream())
                {
                    using (Stream file = File.OpenWrite(downloadFilePath))
                    {
                        streamReader.CopyTo(file);
                    }
                }
            }
        }

        private static WebResponse GetWebResponse(string requestUri, TimeSpan requestTimeout, string token = null)
        {
            var webReq = (HttpWebRequest)WebRequest.Create(requestUri);
            webReq.Method = "GET";
            webReq.Timeout = (int)requestTimeout.TotalMilliseconds;
            webReq.ReadWriteTimeout = (int)requestTimeout.TotalMilliseconds;
            webReq.KeepAlive = true;
            webReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36";
           
            var httpResponse = (HttpWebResponse)webReq.GetResponse();
            return httpResponse;
        }

1 Ответ

0 голосов
/ 31 декабря 2018

После проверки ответа с помощью онлайн-инструмента http://checkfiletype.com/, выяснилось, что получаемый нами контент является gzip, поэтому нашел решение для него.

Мы можем установить декомпрессию по запросу, и тогда она будетавтоматически распаковать и сохранить файл в png, если мы установим следующее: webReq.AutomaticDecompression = DecompressionMethods.GZip |DecompressionMethods.Deflate;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...