Имя: Пароль:
IT
Админ
Winhttp и подключение к wikimart.ru
0 elisabet
 
04.05.13
18:42
Задача на первый взгляд простая: есть сайт wikimart.ru, требуется туда подключиться используя логин и пароль и получить список своих заказов.
Используя WinHttp моделируем подключение:

   Пользователь = "login[login]=user";
   Пароль = "login[password]=password";
   
   WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
   //WinHttp.Option(2,"utf-8");
   WinHttp.Open("POST", "http://wikimart.ru/logIn/",0);
       
   WinHttp.setRequestHeader("Content-Type","text/html; charset=UTF-8");
   WinHttp.setRequestHeader("Connection","Keep-Alive");
   WinHttp.setRequestHeader("Referer","http://wikimart.ru/logIn/?retpath=http://wikimart.ru/my/seller/orders/?xml=1");
       
   //ПараметрыPOST = Пользователь+"&"+Пароль;
   WinHttp.Send();    


Так вот вопрос встал, как же все таки передать имя пользователя и пароль в логин на сайт, передача хоть и возвращает 200 (все ок), но полученная в результате страница через ResponseBody это заглавная страница сайта. А мне нужно получить именно ту страницу, которая указана в параметре "Referer"?
1 kokamoonga
 
04.05.13
19:58
(0) могу заблуждаться, но не ждет ли страница "http://wikimart.ru/my/seller/orders/?xml=1" куки от клиента?

может стоит все же разделить две принципиально разные задачи? авторизацию отдельно, хождение по сайту отдельно
2 oleg_km
 
04.05.13
21:04
В Fiddler смотрел как проходит настоящая авторизация?

(1) Куки нормально сам WinHTTP добавляет. Это если ими нужно хитро манипулировать
3 kokamoonga
 
04.05.13
21:45
(2) ну я не спец по WinHTTP. Положусь на ваше мнение в этом вопросе.
4 elisabet
 
06.05.13
07:15
Через IeWatch  смотрела как проходит соединение - куки не используются в нем, в off стоят.
5 oleg_km
 
06.05.13
08:28
(4) Ну так и не смотрите на куки. Смотрите какие URL используются, как запрос заполняется. Где у вас тело запроса передается:

//ПараметрыPOST = Пользователь+"&"+Пароль;
WinHttp.Send();    

Развер не так должно быть:
ПараметрыPOST = Пользователь+"&"+Пароль;
WinHttp.Send(ПараметрыPOST);
6 elisabet
 
06.05.13
09:28
(5) так я уже тоже пробовала - все равно возвращается заглавная страница. такое ощущение что авторизация не хочет идти, хотя параметры пользователя и пароль написаны правильно, как показал IeWatch.