diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2010-04-13 18:02:21 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2010-04-13 20:27:11 -0700 |
commit | 34080bfd3948a0dea0dac6d876a200a9a8017669 (patch) | |
tree | fd1f55cb0e7e17ca69be8bbb46a951667d07cfb2 /src | |
parent | 5921a208b399e98e4d7208c2741b9210e0a7ebd1 (diff) | |
download | DotNetOpenAuth-34080bfd3948a0dea0dac6d876a200a9a8017669.zip DotNetOpenAuth-34080bfd3948a0dea0dac6d876a200a9a8017669.tar.gz DotNetOpenAuth-34080bfd3948a0dea0dac6d876a200a9a8017669.tar.bz2 |
Fixed an occasional unhandled exception.v3.4.3.10103
Diffstat (limited to 'src')
-rw-r--r-- | src/DotNetOpenAuth/Messaging/CachedDirectWebResponse.cs | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/DotNetOpenAuth/Messaging/CachedDirectWebResponse.cs b/src/DotNetOpenAuth/Messaging/CachedDirectWebResponse.cs index dd34d90..c9bc1d3 100644 --- a/src/DotNetOpenAuth/Messaging/CachedDirectWebResponse.cs +++ b/src/DotNetOpenAuth/Messaging/CachedDirectWebResponse.cs @@ -90,11 +90,16 @@ namespace DotNetOpenAuth.Messaging { public override StreamReader GetResponseReader() { this.ResponseStream.Seek(0, SeekOrigin.Begin); string contentEncoding = this.Headers[HttpResponseHeader.ContentEncoding]; - if (string.IsNullOrEmpty(contentEncoding)) { - return new StreamReader(this.ResponseStream); - } else { - return new StreamReader(this.ResponseStream, Encoding.GetEncoding(contentEncoding)); + Encoding encoding = null; + if (!string.IsNullOrEmpty(contentEncoding)) { + try { + encoding = Encoding.GetEncoding(contentEncoding); + } catch (ArgumentException ex) { + Logger.Messaging.ErrorFormat("Encoding.GetEncoding(\"{0}\") threw ArgumentException: {1}", contentEncoding, ex); + } } + + return encoding != null ? new StreamReader(this.ResponseStream, encoding) : new StreamReader(this.ResponseStream); } /// <summary> |