Добавить куки в обработку
От: Аноним  
Дата: 09.01.11 20:34
Оценка:
Всем здравствуйте.

Делаю парсинг одного сайта. Сайт имеет данные на 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 мне не помогло... (может плохо искал)

Подскажите, что нужно еще инициализировать в "печеньке"?
Re: Добавить куки в обработку
От: ZmeyNet  
Дата: 10.01.11 09:43
Оценка:
Здравствуйте, Аноним, Вы писали:

А> <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 "/".

Re[2]: Добавить куки в обработку
От: Аноним  
Дата: 10.01.11 11:58
Оценка:
Здравствуйте, ZmeyNet, Вы писали:

ZN>Здравствуйте, Аноним, Вы писали:


А>> <a href="" onClick="Cookie.write('language', 'ru', {path: '/'});">

А>>
А>>            [b]Cookie myCookie = new Cookie("language", localize.Lang, "{path: '/'}");
А>>



ZN>что то мне подсказывает , что строка "{path: '/'}" некорректна


Да-да, все верно — просто путь "/" указать и все.. Час назад сам нашел, но спасибо за участие
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.