我正在努力在 .NET中的HttpWebRequest
/类型之上构建一个流畅的 REST 客户端界面。HttpWebResponse
到目前为止,一切都很好......但是我正在尝试开发一个可插入的安全框架,可以自动处理安全令牌协商、令牌刷新等。
HttpWebRequest/Response
由于遇到 400 系列或 500 系列 HTTP 状态代码时的工作性质,我遇到了问题。它们不是简单地设置.StatusCode
and.StatusDescription
属性并允许您以任何您希望的方式处理,而是抛出一个WebException
. 一般来说,这可能不是问题……但是我们进行身份验证的方式(OAuth 2.0 的衍生版本),我需要处理某些 400 系列错误而不会发生异常。
有没有办法将 HttpWebRequest/Response 重新配置为 NOT throw WebException
,并允许消费者确定他们自己的错误处理?我知道有一些迂回的方式来处理旧的 Http1.0 服务器的 Expect-100-Continue ......我很好奇是否有类似的迂回方式来禁用 WebExceptions。
(哦,简直无法抗拒......向我在 RedGate 的好朋友们大声疾呼,因为他们非法拿走了 Reflector 6 的许可绑定免费版本......我也许能弄清楚这个如果我可以窥探代码,就靠我自己……但是唉……遗憾的是,Reflector 是一个不可行的选择,因为它已经通过自溶消耗了自己。;P)