Следит ли WebClient за заголовками Location при получении ответа 201? - PullRequest
1 голос
/ 21 ноября 2010

Соответствует ли .NET WebClient заголовок Location , который следует отправлять вместе с ответом 201 Created?Если да, есть ли способ отключить его?

Кроме того, я ищу способ получить значение заголовка Location, так как я хотел бы отобразить ссылку созданного ресурса для пользователя.

1 Ответ

3 голосов
/ 23 ноября 2010

Проверен исходный код .NET Framework и вот ответ: 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 находится вResponseHeaders коллекция WebClient (или аргументов события при использовании async).

...