有没有办法在windowsphone上从httpClient获取响应的流式传输结果? 我在PCL目标WP7.1 +中有以下代码(如果将代码移动到手机项目也是同样的问题),它可以在windowsstore应用程序中正常运行,但在Windows手机上,请求永远不会像在商店应用。
一旦HttpResponseMessage可用,它已经指定了Content-Length - 这个数据流正在缓慢填充。
我尝试指定一个Connection Keep-Alive标头,但是在手机上,指定该标头会导致ArgumentException“标头连接具有空值”。商店应用程序很好用
resp = m_httpClientStream.SendAsync(request,
HttpCompletionOption.ResponseHeadersRead, m_ctsStream.Token);
resp.ContinueWith(
(responseTask) =>
{
HttpResponseMessage respMsg;
try
{
respMsg = responseTask.Result;
}
catch (Exception e)
{
return;
}
Task<Stream> respStream = respMsg.Content.ReadAsStreamAsync();
respStream.ContinueWith(
async (respStreamTask) =>
{
Stream streamResp = respStreamTask.Result;
int read = 0;
do
{
byte[] responseBuffer = new byte[500];
read = await streamResp.ReadAsync(responseBuffer, 0, responseBuffer.Length);
string result = Encoding.UTF8.GetString(responseBuffer, 0, read);
//callback
} while (read != 0);
});
});
答案 0 :(得分:0)
在2013年2月的httpclient测试版中,Windows手机不支持分块响应。它应该被添加到下一个公开发布。