首页 > 解决方案 > 当请求可能返回不同对象时响应的反序列化

问题描述

我正在使用 RestSharp 调用 API。我的基本功能现在工作得很好,我可以调用 RestClient.Execute(new RestRequest("/something"))。服务器返回映射到我创建的类的 JSON。这一切都很好。

但是......如果调用失败,服务器将返回一个不同的对象。它在失败时返回一个错误对象,当然,它与为成功指定的类型不匹配。

有没有办法处理可能返回正常答案或错误对象的请求?

标签: restsharp

解决方案


得到它的工作。我看到的是,如果调用失败,IRestResponse.IsSuccessful 为 false,响应内容 JSON 字符串是错误对象而不是正常响应。

因此,在调用 RestClient.Execute 后,如果 IsSuccessful 为 false,我将使用错误对象 C# 类调用 RestClient.Deserialize。

这样,如果调用成功,我会得到常规的反序列化对象,如果调用失败,我会得到 API 的错误对象,然后我可以将其作为异常抛出或以其他方式处理。


推荐阅读