Как изменить файлы cookie HttpWebRequest? - PullRequest
2 голосов
/ 25 января 2011

Cookies в HttpWebRequest доступны только для чтения, но мне нужно изменить некоторые из файлов cookie.

Я могу использовать заголовок Set-Cookie, но он подвержен ошибкам. Можно ли как-то изменить HttpWebRequest куки OO?

Если нет, как я могу получить текст заголовка System.Net.Cookie? (Я буду использовать его в заголовке Set-Cookie)

Ответы [ 2 ]

2 голосов
/ 25 января 2011
HttpWebRequest targetrequest = (HttpWebRequest)WebRequest.Create(targeturl);
targetrequest.CookieContainer = new CookieContainer();
foreach (string clientcookie in Request.Cookies) {
    Cookie targetcookie = new Cookie(clientcookie, Request.Cookies[clientcookie].Value, "/", targetrequest.RequestUri.Host);
    targetrequest.CookieContainer.Add(targetcookie);
}
0 голосов
/ 25 января 2011

Посмотрите на http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer(v=VS.90).aspx

Вам нужно инициализировать объект CookieContainer и добавить к нему ваши куки.

Если вы получаете куки с HttpWebResponse, просто добавьте коллекцию в CookieContainer (см .: http://msdn.microsoft.com/en-us/library/system.net.cookiecontainer.add(v=VS.90).aspx).

Чтобы изменить один конкретный файл cookie, вам необходимо получить к нему доступ и изменить его значения:

cookies["cookie_name"].Expiration = ...
...