Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2012, 15:22   #1
azaznio
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 16
Вопрос HTTP JAVASKRIPT

Всем привет. Проблема заключается в следующем:

Я хочу получить код страницы с сайта, но в ответ получаю HTML сообщение с текстом This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.

Что в переводе означает: Этот сайт требует чтобы JavaScript и Cookies были включены. Пожалуйста, измените настройки Вашего браузера или обновите браузер.

Я, конечно, понимаю, что можно использовать встроенный webbrowser или еще какой нибудь, но большой скоростью работы они не отличаются, поэтому я мечусь в поисках своего "Супер IdHTTP", который бы мог так же быстро работать и необязательно выполнять код javaskript.

Если у вас есть предложения как обойти это злосчатное сообщение, то прошу сильно не таить.

Заранее ОГРОМНОЕ СПАСИБО.
azaznio вне форума Ответить с цитированием
Старый 13.06.2012, 17:47   #2
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

Цитата:
"Супер IdHTTP"
нету такого
Цитата:
Если у вас есть предложения как обойти это злосчатное сообщение, то прошу сильно не таить.
В 99% случаем все решается элементарно, смотриш снифером откуда данные реально приходят и пишеш
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 14.06.2012, 20:07   #3
QunneD
C++ & PHP & Asm
Форумчанин
 
Аватар для QunneD
 
Регистрация: 06.12.2008
Сообщений: 300
По умолчанию

Есть предложение.

WinAPI функции из библиотеки wininet.dll

http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

Ну или используйте, IHtmlDocument2.

Последний раз редактировалось QunneD; 14.06.2012 в 20:11.
QunneD вне форума Ответить с цитированием
Старый 14.06.2012, 20:30   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
который бы мог так же быстро работать и необязательно выполнять код javaskript.
Если механизм сайта предусматривает JS, то хоть ты тресни - придется Джаву использовать (всмысле браузы поддерживающие ее)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.06.2012, 10:11   #5
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

адрес сайта и что именно пытаетесь там получить можно вскрыть?
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 22.06.2012, 11:29   #6
azaznio
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 16
Вопрос

Цитата:
Сообщение от Mifody Посмотреть сообщение
адрес сайта и что именно пытаетесь там получить можно вскрыть?
С получением кода страницы я разобрался. Ответ можно найти тут: http://www.delphisources.ru/forum/sh...ad.php?t=21447

Но появилась другая проблема. У меня не получается авторизоваться на сайте.

Страница авторизации : http://www.offgamers.com/login.php?b...%2Faccount.php

Я посылаю post запрос на страницу, но в ответ приходит та же самая страница, но только в поле логин написан логин который я посылал. Возможно, проблема в куках, а именно в их сохранении. Я не понимаю как с ними совладать. Надеюсь на вашу помощь. Заранее ОГРОМНЕЙШЕЕ СПАСИБО.

Вот пример кода:
Код:
procedure AuthOnServer.Execute;
var
  s: string;
  post: tstringlist;
 
begin
  s := form1.HTTP.Get
    ('http://www.offgamers.com/customer_xmlhttp.php?action=login_pre_validate&email='
    + form1.EditLogin.Text);
 
  if pos('Proceed', s) <> 0 then
  begin
    post := tstringlist.Create;
    form1.HTTP.Get('http://www.offgamers.com/login.php?baseURL=%2Faccount.php');
    post.Add('RegionalSet[loc_country]=176');
    post.Add('RegionalSet[currency]=USD');
    post.Add('RegionalSet[language]=en');
    s := form1.HTTP.post
      ('http://www.offgamers.com/login.php?baseURL=%2Faccount.php', post);
 
    Delete(s, 1,
      pos('src="http://www.google.com/recaptcha/api/challenge', s) + 4);
    s := copy(s, 1, pos('"', s) - 1);
    form1.Memo1.Lines.Text := s;
    s := form1.HTTP.Get(s);
    Delete(s, 1, pos('challenge : ', s) + 12);
    s := copy(s, 1, pos(',', s) - 2);
 
    post.Clear;
    form1.HTTP.Request.Referer :=
      'http://www.offgamers.com/login.php?baseURL=%2Faccount.php';
    post.Add('email_address=' + form1.EditLogin.Text);
    post.Add('password=' + form1.EditPass.Text);
    post.Add('recaptcha_challenge_field=' + s);
    post.Add('recaptcha_response_field=');
    post.Add('btn_login=');
 
    s := form1.HTTP.post
      ('http://www.offgamers.com/login.php?action=process&baseURL=%2Faccount.php',
      post);
 
    if pos('You have not verified your mobile phone number.', s) <> 0 then
      showmessage('Yes');
 
  end
  else
  begin
    form1.at.Caption := 'Логина не существует';
  end;
 
end;
azaznio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
http server,http сервер, проблемы с post реализация на java snajper_ro Общие вопросы по Java, Java SE, Kotlin 1 23.10.2011 14:25
Http Proxy - как написать к браузеру http-прокси? SergeiGuk Общие вопросы .NET 0 21.05.2010 17:37