Skip to content

Commit b88183f

Browse files
Add support on fetching Uri with local filepath (#182)
Add support on fetching Uri with local filepath
2 parents 5a5dcc1 + d024b97 commit b88183f

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

PreMailer.Net/PreMailer.Net/Downloaders/WebDownloader.cs

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,32 @@ public static IWebDownloader SharedDownloader
2929
public string DownloadString(Uri uri)
3030
{
3131
var request = WebRequest.Create(uri);
32-
using (var response = (HttpWebResponse)request.GetResponse())
32+
using (var response = request.GetResponse())
3333
{
34-
var charset = response.CharacterSet;
35-
var encoding = Encoding.GetEncoding(charset);
36-
using (var stream = response.GetResponseStream())
37-
using (var reader = new StreamReader(stream, encoding))
34+
switch (response)
3835
{
39-
return reader.ReadToEnd();
36+
case HttpWebResponse httpWebResponse:
37+
{
38+
var charset = httpWebResponse.CharacterSet;
39+
var encoding = Encoding.GetEncoding(charset);
40+
using (var stream = httpWebResponse.GetResponseStream())
41+
using (var reader = new StreamReader(stream, encoding))
42+
{
43+
return reader.ReadToEnd();
44+
}
45+
}
46+
47+
case FileWebResponse fileWebResponse:
48+
{
49+
using (var stream = fileWebResponse.GetResponseStream())
50+
using (var reader = new StreamReader(stream))
51+
{
52+
return reader.ReadToEnd();
53+
}
54+
}
55+
56+
default:
57+
throw new NotSupportedException($"The Uri type is giving a response in unsupported type '{response.GetType()}'.");
4058
}
4159
}
4260
}

0 commit comments

Comments
 (0)