I have a server response with Transfer-Encoding: chunked
HTTP/1.1 200 OK
Server: nginx/1.2.1
Date: Mon, 18 Feb 2013 08:22:49 GMT
Content-Type: application/js
You can read chunked response in the following way:
public static byte[] ReadChunkedResponse(this WebResponse response)
{
byte[] buffer;
using (var stream = response.GetResponseStream())
{
using (var streamReader = new StreamReader(stream, Encoding.UTF8))
{
var content = new StringBuilder();
while (!streamReader.EndOfStream)
{
content.Append((char)streamReader.Read());
}
buffer = Encoding.UTF8.GetBytes(content.ToString());
}
}
return buffer;
}
HttpClient
is able to parse chunked output automatically
http://msdn.microsoft.com/en-us/library/system.net.http.httpclient(v=vs.110).aspx
HttpClient
is an overall cool thing with PostAsync and GetAsinc and tons of other goodness.
I never-ever use HttpWebRequest again.
HttpClient
is readily available in .NET Framework 4.5, Windows 8, or Windows Phone 8.1
Use NuGet package http://www.nuget.org/packages/Microsoft.Net.Http if you need HttpClient in - .NET Framework 4 - Windows Phone Silverlight 7.5 - Silverlight 4 - Portable Class Libraries