获得201响应时,WebClient是否遵循Location头?

时间:2010-11-21 19:13:51

标签: .net rest redirect webclient

.NET WebClient是否遵循 Location 标头,该标头应与201 Created响应一起发送?如果是,有没有办法禁用它?

此外,我正在寻找一种方法来检索Location头的值,因为我想向用户显示创建的资源的链接。

1 个答案:

答案 0 :(得分:3)

检查.NET框架源代码,这是答案: WebClient使用HttpWebRequest,它使用以下逻辑来执行重定向:

else if (AllowAutoRedirect && (
    ResponseStatusCode==HttpStatusCode.Ambiguous          || // 300
    ResponseStatusCode==HttpStatusCode.Moved              || // 301
    ResponseStatusCode==HttpStatusCode.Redirect           || // 302
    ResponseStatusCode==HttpStatusCode.RedirectMethod     || // 303
    ResponseStatusCode==HttpStatusCode.RedirectKeepVerb ))   // 307
{

Location 标头的值位于WebClient的ResponseHeaders集合中(或使用异步时的事件args)。