async Task<Image> GetImageAsync(string url)
{
try
{
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
//On worker thread
var response = await request.GetResponseAsync() as HttpWebResponse;
//Back on calling thread
var responseStream = GetCompressedStream(response);
if (responseStream != null)
return Image.FromStream(responseStream);
}
catch(Exception eee)
{
string myerropr = eee.ToString();
}
return null;
}
和
private static Stream GetCompressedStream(HttpWebResponse response)
{
try
{
var stream = response.GetResponseStream();
if (response.ContentEncoding.ToLower().Contains("gzip"))
return new GZipStream(stream, CompressionMode.Decompress);
else if (response.ContentEncoding.ToLower().Contains("deflate"))
return new DeflateStream(stream, CompressionMode.Decompress);
}
catch(EndOfStreamException ee)
{
string myer = ee.ToString();
}
return null;
}
当我使用断点时在var流上我看到了长度:
Length ='stream.Length'抛出了类型的异常 的 'System.NotSupportedException'
位置上的相同例外。
然后最后两个方法都返回null。
我只能在使用断点时才能看到例外情况。
答案 0 :(得分:0)
我建议您阅读有关this的NotSupportedException文章。
在你的情况下,异常只在内部发生(你只能在调试时看到它们),所以你真的不需要担心它们。