【问题标题】:Stop Silverlight 5 from throwing WebExceptions for non-200 status codes?阻止 Silverlight 5 为非 200 状态代码抛出 WebExceptions?
【发布时间】:2016-01-27 04:36:46
【问题描述】:

我正在尝试开发一个调用 RESTful Web 服务的客户端应用程序。作为 RESTful 设计的一部分,该服务使用各种 HTTP 状态代码将状态传回给调用者。例如,如果我请求一个不存在的资源,服务会以 404 状态码进行响应。同样,如果我传入格式错误的参数,服务会以 400(错误请求)状态代码进行响应。 Silverlight 5 自动将这些转换为 WebExceptions。无论如何我可以让 SL 不抛出异常,而是返回一个合法的响应对象,并将状态码等设置为收到的内容,以便我可以决定如何在我的代码中处理响应?

(为了进一步澄清,这似乎仅适用于 400 和 500 范围内的状态代码。)

【问题讨论】:

    标签: silverlight rest silverlight-5.0


    【解决方案1】:

    AFAIK,没有避免异常的解决方案。更糟糕的是,获得实际的 HTTP 代码可能很难甚至不可能(我不确定那里,我没有太努力)。

    您可能想要开发一个 HTTP 请求工具来捕获 WebException 并向调用者提供错误状态。

    【讨论】:

    • 幸运的是,WebException 暴露了接收到的 HttpWebResponse 对象,这为我们提供了 StatusCode、StatusReason 等。我目前正在按照您的描述进行操作(捕获异常并将其转换回响应)。如果有一种方法可以消除 SL 将响应转换为异常、抛出并处理它以将其转换回收到的原始响应的开销,这样我就可以决定如何对状态做出反应。
    • 谢谢你的详细信息,很高兴知道(正如我之前所说,我没有搜索太多)。
    猜你喜欢
    • 2021-09-11
    • 2017-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    • 2022-01-21
    • 2012-06-16
    • 1970-01-01
    相关资源
    最近更新 更多