我把我的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 属性,我可以使用它来读取响应中的项目(如果已发送)。