Есть ли способ изменить поведение HttpWebRequest для кодов состояния 400/500?

Я работаю над созданием свободного клиентского интерфейса REST поверх HttpWebRequest / Типы HttpWebResponse в .NET. Пока все хорошо ... однако я пытаюсь разработать подключаемую структуру безопасности, которая может автоматически обрабатывать согласование токенов безопасности, обновление токенов и т. Д.

Я столкнулся с проблемой из-за характера того, как HttpWebRequest / Response работают, когда они сталкиваются с кодом состояния HTTP серии 400 или 500. Вместо того, чтобы просто установить . StatusCode и .StatusDescription и позволяя вам обрабатывать их любым способом, они генерируют WebException . Вообще говоря, это, вероятно, не проблема ... однако способ аутентификации (производный от OAuth 2.0) требует обработки определенных ошибок серии 400 без возникновения каких-либо исключений.

Есть ли способ перенастроить HttpWebRequest / Ответ на НЕ выбросить WebException и позволить потребителю самостоятельно определять обработку ошибок? Я знаю, что есть несколько обходных способов обработки Expect-100-Continue со старыми серверами Http1.0 ... Мне любопытно, есть ли аналогичный обходной способ отключить WebExceptions.

(О, и просто не могу устоять ... БОЛЬШОЙ OL ' КРИЧИТЕ моим ЗАМЕЧАТЕЛЬНЫМ друзьям в RedGate за незаконное изъятие БЕСПЛАТНОЙ версии Reflector 6, связанной с лицензией ... Я мог бы сам разобраться в этом, если бы мог подглядывать за кодом ... но увы ... .Reflector, к сожалению, стал нежизнеспособным вариантом сейчас, когда он потреблял себя через автолиз. ; P)

7
задан jrista 6 May 2011 в 22:16
поделиться