C#UWP HttpWebResponse Chunked

时间:2015-11-18 12:32:55

标签: c# windows uwp httpwebresponse chunked

我有读取流响应的问题,因为我无法读取对结束的响应。

这是来自服务器的响应:

 Server : "Apache-Coyote/1.1"
 Transfer-Encoding : "chunked"
 Content-Type: "multipart/mixed; boundary=F34D3847AEDEB14FF5967BF7426EECF6"

我尝试阅读此回复:

var response = (HttpWebResponse)await httpWebRequest.GetResponseAsync();
using(var read = new StreamReader(response.GetResponseStream())
 {
   var result = await read.ReadToEndAsync();
 }

和这个方法:

StringBuilder sb = new StringBuilder();
Byte[] buf = new byte[8192];
Stream resStream = response.GetResponseStream();
string tmpString = null;
int count = 0;
do
{
count = resStream.Read(buf, 0, buf.Length);
if(count != 0)
{
      tmpString = Encoding.ASCII.GetString(buf, 0, count);
      sb.Append(tmpString);
}
}while (count > 0);

错误讯息:

Exception from HRESULT: 0x80072EE4
I/O error occurred.
Exception thrown: 'System.IO.IOException' in mscorlib.ni.dll
Exception thrown: 'System.IO.IOException' in mscorlib.ni.dll

不幸的是它不起作用,只获得响应的片段。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我测试了你的代码,对于你采用的第一种方法,我的工作正常,我刚刚添加了Dispose()。对于第二种方法,我认为可能是您没有得到var ContentLength的{​​{1}}的问题。

这是我的代码,代码的注释部分是第一个方法,我用response事件处理这个:

Button Click

我已经测试过了,它运行正常。