有没有办法查看 RestClient.ExecuteAsync() 何时因连接丢失而失败?
当我切断网络连接时,响应包含一个 SerializationException "Invalid JSON String",就好像它收到了无法解析的内容一样。相反,我希望出现与网络连接相关的异常,例如某种 IOException。
现在我可能假设如果 ContentLength==0 那么响应实际上不是响应而是缺少连接,因此我可以向用户报告适当的错误并建议他们检查他们的 Internet 连接。
当您切断网络连接时,可能会使用通过 HTTP 代理的不同网络连接。本地 ISP 通常会提供“您的意思是”HTML 页面以响应失败的地址查找。
一些示例场景:如果您在移动设备上通过 wifi 到本地网络上的服务器进行测试,然后您关闭了 wifi,则可能会尝试通过蜂窝数据进行连接。
或者,您正在通过 VPN 进行测试并且 VPN 连接断开,导致设备回退到本地 wifi 网络。
如果您的客户端在 Windows 机器上,请尝试通过 Fiddler 等工具建立连接,以查看实际返回的响应类型。或者使用 Wireshark。很有可能响应来自“有用的”代理服务器。