【问题标题】:RestSharp "Invalid JSON string" when connection lost连接丢失时RestSharp“无效的JSON字符串”
【发布时间】:2013-10-01 17:31:28
【问题描述】:

有没有办法查看 RestClient.ExecuteAsync() 何时因连接丢失而失败?

当我切断网络连接时,响应包含一个 SerializationException "Invalid JSON String",就好像它收到了无法解析的内容一样。相反,我希望出现与网络连接相关的异常,例如某种 IOException。

现在我可能假设如果 ContentLength==0 则响应实际上不是响应,而是缺少连接,因此我可以向用户报告适当的错误并建议他们检查他们的 Internet 连接。

【问题讨论】:

  • 你有 try catch 块吗?这有助于这种情况
  • 是的,我确实有一个 try/catch。在这种情况下,ExecuteAsync() 实际上并没有抛出异常;我所说的“失败”是指它使用包含 ErrorException 属性的 Response 对象调用您的回调,该属性是 SerializationException 的存储位置。

标签: c# json restsharp


【解决方案1】:

当您切断网络连接时,可能会使用另一个通过 HTTP 代理的网络连接。本地 ISP 通常会提供“您的意思是”HTML 页面以响应失败的地址查找。

一些示例场景:如果您在移动设备上通过 wifi 到本地网络上的服务器进行测试,然后您关闭了 wifi,则可能会尝试通过蜂窝数据进行连接。

或者,您正在通过 VPN 进行测试并且 VPN 连接断开,导致设备回退到本地 wifi 网络。

如果您的客户端在 Windows 计算机上,请尝试通过 Fiddler 等工具建立连接,以查看实际返回的响应类型。或者使用 Wireshark。很有可能响应来自“有用的”代理服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 2019-07-10
    • 2021-03-28
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多