Author: fmui
Date: Mon Mar 5 19:33:28 2012
New Revision: 1297190
URL: http://svn.apache.org/viewvc?rev=1297190&view=rev
Log:
CMIS-512: Fix for Base64 encoded streams
Modified:
chemistry/dotcmis/trunk/DotCMIS/binding/http.cs
Modified: chemistry/dotcmis/trunk/DotCMIS/binding/http.cs
URL:
http://svn.apache.org/viewvc/chemistry/dotcmis/trunk/DotCMIS/binding/http.cs?rev=1297190&r1=1297189&r2=1297190&view=diff
==============================================================================
--- chemistry/dotcmis/trunk/DotCMIS/binding/http.cs (original)
+++ chemistry/dotcmis/trunk/DotCMIS/binding/http.cs Mon Mar 5 19:33:28 2012
@@ -178,13 +178,22 @@ namespace DotCMIS.Binding.Impl
Message = httpResponse.StatusDescription;
ContentType = httpResponse.ContentType;
ContentLength = httpResponse.ContentLength == -1 ? null :
(long?)httpResponse.ContentLength;
+ string contentTransferEncoding =
httpResponse.Headers["Content-Transfer-Encoding"];
+ bool isBase64 = contentTransferEncoding != null &&
contentTransferEncoding.Equals("base64",
StringComparison.CurrentCultureIgnoreCase);
if (httpResponse.StatusCode == HttpStatusCode.OK ||
httpResponse.StatusCode == HttpStatusCode.Created ||
httpResponse.StatusCode ==
HttpStatusCode.NonAuthoritativeInformation ||
httpResponse.StatusCode == HttpStatusCode.PartialContent)
{
- Stream = new
BufferedStream(httpResponse.GetResponseStream(), 64 * 1024);
+ if (isBase64)
+ {
+ Stream = new BufferedStream(new
CryptoStream(httpResponse.GetResponseStream(), new FromBase64Transform(),
CryptoStreamMode.Read), 64 * 1024);
+ }
+ else
+ {
+ Stream = new
BufferedStream(httpResponse.GetResponseStream(), 64 * 1024);
+ }
}
else
{