Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Windows Phone 7 POST запрос и cookie 
:(
    Опции темы
arsenium
Дата 27.11.2011, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 14.5.2009

Репутация: нет
Всего: нет



Немогу разобраться как правильно выполнять POST запросы в Windows phone 7 приложении. Впринцапе для этого есть несколько способов...Использовать WebClient или HttpWebRequest. 
WebClient прост в управлении, но нет работы с cookie. А HttpWebRequest с его асинхронными методами...вообщем пока я не совсем понимаю как он работает.
Хочу разобраться, что лучше использовать для авторизации на сервере. Для примера, решил попробоват залогиниться на сайте Вконтакте. Пробовал следующие способы:

Пробовал через WebClient:
Код

        public class CookieAwareClient : WebClient
        {
            [System.Security.SecuritySafeCritical]
            public CookieAwareClient()
                : base()
            {
            }
            private CookieContainer m_container = new CookieContainer();
            protected override WebRequest GetWebRequest(Uri address)
            {
                WebRequest request = base.GetWebRequest(address);
                if (request is HttpWebRequest)
                {
                    (request as HttpWebRequest).CookieContainer = m_container;
                }
                return request;
            }
        }

            CookieAwareClient cookieClient = new CookieAwareClient;
            cookieClient.OpenWriteCompleted+=new OpenWriteCompletedEventHandler(cookieClient_OpenWriteCompleted);
            cookieClient.Headers["User-Agent"] = "Mozilla/4.0 (compatible; ICS)";
            cookieClient.OpenWriteAsync(new Uri("http://login.vk.com"), "POST", "[email protected]&pass=mypassword");

        void  cookieClient_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e)
        {
            var responseTest = e.Result.ToString();
        }


Вообщем, если посмотреть через HttpAnalyzer, то в Response Headers будет пусто, следовательно в cookie тоже пусто, а вот в Response Content написано: Request is not completed. waiting ...

Потом использовал библиотеку RestSharp:

Код

var client = new RestClient("http://login.vk.com");

        var request = new RestRequest("?act=login", Method.POST);
        request.AddParameter("email", "myemail", ParameterType.GetOrPost);
        request.AddParameter("pass", "mypassword", ParameterType.GetOrPost);
        request.AddParameter("vk", "mytoken", ParameterType.GetOrPost);

        client.ExecuteAsync(request, (response) =>
        {
            CookieCollection cookie = client.CookieContainer.GetCookies(response.ResponseUri);
            var auth = response.Content.ToString();
        });

И тоже самое, если посмотреть через HttpAnalyzer, то в Response Headers и cookie пусто, и опять же Response Content написано: Request is not completed. waiting ...
Что я делаю не так? тот же самый код (c RestSharp) пробовал для авторизации в Google Reader и все работает. а с Вконтакте нет...
Как вообще правильно выполнить такой POST запрос для авторизации на сайте?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0668 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.