我把我的WebResponse
包裹在using
块中:
using (var response = request.GetResponse())
{
// do things...
}
我正在调用的 Web 服务将引发429 ,并在标题中使用Retry-After 。
如果我将它包装在 atry-catch
中以侦听,WebException
那么我将丢失响应的上下文并且将无法读取Retry-After
标题中的元素。
我应该如何正确处理响应,同时为此实现重试逻辑?
我把我的WebResponse
包裹在using
块中:
using (var response = request.GetResponse())
{
// do things...
}
我正在调用的 Web 服务将引发429 ,并在标题中使用Retry-After 。
如果我将它包装在 atry-catch
中以侦听,WebException
那么我将丢失响应的上下文并且将无法读取Retry-After
标题中的元素。
我应该如何正确处理响应,同时为此实现重试逻辑?
实际上这比我想象的要容易得多。
WebException类公开了一个 .Response 属性,我可以使用它来读取响应中的项目(如果已发送)。