Уважаемые профессионалы, месяц убил на поиски аналогов авторизации и попытки написания кода с использованием win API (wiinet.dll) и все безрезультатно. Авторизация построена на sript (ах) и стандартным POST запросом не проходит. Посмотрите код пожалуйста, подскажите пути решения вопроса. Страница авторизации http://www.alpari.ru/ru/analytics/dj_news/Цитата | <form class="js-enter-form" name="analytics_auth" method="POST" action="https://www.alpari.ru/ru/login/"> <div class="form-el form-el_button js-form-el-field form-el_huge" data-field-type="ButtonField" data-field-name="enter" > <div class="form-el__wrap js-form-el__input js-form-el-holder " data-input-type="ButtonInput"> <span class="form-el__caller">Авторизоваться</span><div class="form-el__deco form-el__deco_normal s-gradient_green"></div> <div class="form-el__deco form-el__deco_active s-gradient_orange"></div> <span class="form-el__loading-deco s-br_all"></span> </div></div> <input type="hidden" class="js-form-el-field js-form-el-holder js-form-el__input " name="successUrl" value="/ru/analytics/dj_news/" data-field-name="successUrl" data-input-type="HiddenInput" data-field-type="HiddenInputField" />
<input type="hidden" class="js-form-el-field js-form-el-holder js-form-el__input " name="action" value="" data-field-name="action" data-input-type="HiddenInput" data-field-type="HiddenInputField" />
<input type="hidden" class="js-form-el-field js-form-el-holder js-form-el__input js-register-visit-url" name="js-register-visit-url" value="dowjones_list" data-field-name="js-register-visit-url" data-input-type="HiddenInput" data-field-type="HiddenInputField" data-url="/ru/counters/register_visit/" />
</form>
|
В конце кода страницы исполняются десяток скриптов назначение которых мне непонятно. Код на С подобном языке выглядит так Цитата |
string Vers="HTTP/1.1"; string method="POST"; string Object="/ru/login/"; // это из Анализера HTTP Analizator V7 string Script="/ru/analytics/dj_news/"; string refer="http://www.alpari.ru/ru/analytics/dj_news/";
int hRequest=HttpOpenRequestW(hConnect,method,Object,Vers,refer,0,INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE,0);
uchar Data[]; string d="login=LOGIN&password=PASWORD&successUrl=/ru/analytics/dj_news/&action=&js-register-visit-url"; int sz=ArrayResize(Data,StringLen(d)); StringToCharArray(d,Data);
string head="\r\nContent-Type: application/x-www-form-urlencoded\r\n" + "Content-Length: "+ (string)StringLen(d)+"\r\n"+"Cookie: income=1\r\n\r\n";
int hSend=HttpSendRequestW(hRequest, head, sizeof(head),Data,ArraySize(Data));
|
Страница после запроса читается, но в первозданном виде, т.е. авторизации и редиректа на то что нужно не происходит За решение вопроса готов отбагодарить
|