Всем здравствуйте.
Делаю парсинг одного сайта. Сайт имеет данные на 3 языках (русский, английский и немецкий)
Переключение между языками реализовано на сайте через куки:
<div id="head">
<div style="padding: 15px 10px 0 0; float: right;">
<a href="" onClick="Cookie.write('language', 'ru', {path: '/'});">
<span style="margin-left: 5px; cursor: pointer;">
<img src="/images/lang-ru.png" width="24px" height="16px" border="0"/>
</span>
</a>
<a href="" onClick="Cookie.write('language', 'en', {path: '/'});">
<span style="margin-left: 5px; cursor: pointer;">
<img src="/images/lang-gb.png" width="24px" height="16px" border="0"/>
</span>
</a>
<a href="" onClick="Cookie.write('language', 'de', {path: '/'});">
<span style="margin-left: 5px; cursor: pointer;">
<img src="/images/lang-de.png" width="24px" height="16px" border="0"/>
</span>
</a>
</div>
</div>
Мне в программе необходимо тоже реализовать чтение данных на трех языках.
Вот код авторизации на сайте:
var request = (HttpWebRequest)WebRequest.Create("http://somedomane.com/");
initRequest(request);
var response = (HttpWebResponse)request.GetResponse();
cookies = response.Cookies;
response.Close();
request = (HttpWebRequest)WebRequest.Create("http://somedomane.com/join/login/");
initRequest(request);
request.CookieContainer.Add(cookies);
request.Method = "POST";
var data = Encoding.GetEncoding(1251).GetBytes("login=" + login + "&password=" + password);
request.ContentLength = data.Length;
request.Referer = "http://somedomane.com/search";
var stream = request.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
response = (HttpWebResponse)request.GetResponse();
cookies = response.Cookies;
Cookie myCookie = new Cookie("language", localize.Lang, "{path: '/'}");
cookies.Add(myCookie);
response.Close();
Жирным выделена моя попытка установить язык.
Но как только я делаю следующий запрос к сайту уже за реальными данными, я получаю ошибку:
Необработанное исключение типа "System.ArgumentException" произошло в System.dll
Дополнительные сведения: Параметр '{0}' не может быть пустой строкой.
Чтение MSDN мне не помогло... (может плохо искал)
Подскажите, что нужно еще инициализировать в "печеньке"?
Здравствуйте, Аноним, Вы писали:
А> <a href="" onClick="Cookie.write('language', 'ru', {path: '/'});">
А>А> [b]Cookie myCookie = new Cookie("language", localize.Lang, "{path: '/'}");
А>
что то мне подсказывает , что строка "{path: '/'}" некорректна
path
Type: System .String
The subset of URIs on the origin server to which this Cookie applies. The default value is "/".
Здравствуйте, ZmeyNet, Вы писали:
ZN>Здравствуйте, Аноним, Вы писали:
А>> <a href="" onClick="Cookie.write('language', 'ru', {path: '/'});">
А>>А>> [b]Cookie myCookie = new Cookie("language", localize.Lang, "{path: '/'}");
А>>
ZN>что то мне подсказывает , что строка "{path: '/'}" некорректна
Да-да, все верно — просто путь "/" указать и все.. Час назад сам нашел, но спасибо за участие