HttpWebRequest с GET: 401 не авторизован - PullRequest
1 голос
/ 01 августа 2011

Я обнаружил некоторую проблему с httpWebRequest, я читал все те же проблемы на других форумах, но ответы, похоже, не работают. Мой код:

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp;
wr.ContentType = "text/html; charset=UTF-8"; 
wr.Method = "GET";
wr.Credentials = new NetworkCredential("user", "password");
resp = (HttpWebResponse)wr.GetResponse();

Удаленный сервер возвратил ошибку: (401) Unauthorized. В ответе говорится, что в файлах cookie нет токена авторизации. Я могу получить этот токен, используя мой запрос авторизации с методом POST. Я даже пытался поместить его в CookieContainer "new Cookie ("authToken",token_value)"., но результат тот же - error 401. Кто-нибудь знает решение?

Thanx.

Я использую веб-сервер Zimbra, у меня есть доступ для управления им. .NET 4.0. Мой URL - это путь к файлу .eml, который мне нужно скачать. Чтобы указать файл, мне нужно добавить несколько параметров GET: идентификатор и часть. Таким образом, весь адрес выглядит как http://someserver.info/service/content/get?id=1&part=1

1 Ответ

0 голосов
/ 27 января 2015

(Ответы на комментарии и вопросы отредактированы ОП. Перемещено здесь. См. Вопрос без ответов, но проблема решена в комментариях (или расширена в чате) )

ОПwrote:

Токен авторизации в Zimbra называется ZM_AUTH_TOKEN, поэтому вам нужно поместить свои authtoken в куки, например:

wr.CookieContainer = new CookieContainer();
wr.CookieContainer.Add(new Uri(url), new Cookie("ZM_AUTH_TOKEN", rc.AuthToken));

Вытогда не нужно ставить заголовки аутентификации, запрос будет работать

...