gpt4 book ai didi

windows-phone-7 - 连接丢失时,BinaryReader.Read不会引发IOException

转载 作者:行者123 更新时间:2023-12-04 19:34:32 27 4
gpt4 key购买 nike

我使用HttpWebResponse.BeginGetResponse()方法向服务器发出请求。该请求的AllowReadStreamBuffering设置为false,因此不会缓冲数据。在“请求完成”通知中,执行以下操作(不包括错误处理代码):

HttpWebResponse response = (HttpWebResponse)myHttpWebRequest.EndGetResponse(result);
BinaryReader streamReader = new BinaryReader(response.GetResponseStream());

try
{
while ((readSize = streamReader.Read(buffer, 0, buffer.Length)) > 0)
{
...
}
}
catch (Exception)
{ // NEVER GET HERE!!
...
}


我的问题是,在从流中读取数据时(在while循环期间),我无法检测到连接错误。行为非常奇怪:它完成了读取操作系统在缓存中拥有的所有数据,然后像“流末尾”的情况一样返回“ readSize = 0”。
我期望streamReader.Read()引发IOException异常,但事实并非如此!
我试图在某处找到流失败标志,但似乎没有(Stream / BinaryReader / HttpWebResponse)。请帮忙!

我通过使用三种方案进行了测试,并且都具有相同的行为:


使用电话到PC的USB连接

使用PC USB连接将电话连接到Internet
在几次streamReader.Read()成功调用之后,我禁用了PC网卡

使用WIFI连接

手机通过WIFI连接到互联网
在几次streamReader.Read()成功调用之后,我关闭了WIFI路由器的电源

使用WIFI连接

手机通过WIFI连接到互联网
在几次streamReader.Read()成功调用之后,我拔下了WAN电缆(因此它无法访问Internet)。



谢谢!
米海

最佳答案

如果没有收到异常,则一种方法是根据response.ContentLength检查读取的字节数。

关于windows-phone-7 - 连接丢失时,BinaryReader.Read不会引发IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6943492/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com