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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2015, 08:44   #1
m.a.x.i.m
Пользователь
 
Регистрация: 29.03.2008
Сообщений: 32
По умолчанию delphi7, synapse и сайт на https

Привет. Потребовалось получать хтмл код с сайта bitinfocharts.com. Использую библиотеку synapse. В uses подключил ssl_openssl. В папке с программой лежат длл-ки libeay32.dll и ssleay32.dll. Проблема именно с этим сайтом. Другие, например https://www.google.ru загружаются без проблем. Но с моим не получается, возвращает ошибку 500. Не нашел, чем можно посмотреть гет запрос, отправляемый моей программой. HttpAlanyzer как я понял с https не работает. Вот тестовый пример.

Код:
uses
  ...HttpSend, ssl_openssl;

procedure TForm1.Button3Click(Sender: TObject);
var http:THttpSend;
begin
HTTP:=THTTPSend.Create;
HTTP.HTTPMethod('GET','https://bitinfocharts.com/');//тут ошибка 500
//HTTP.HTTPMethod('GET','https://www.google.ru');//тут все загружается
Showmessage(inttostr(http.ResultCode));
HTTP.free;
end;
я так понимаю, что нужно посмотреть что отправляет браузер, и сделать в своей программе аналогичный запрос. Пробовал добавлять разные заголовки
Код:
http.Headers.Add('Accept-Encoding: gzip,deflate');
http.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
http.Headers.Add('Accept-Language: en-US,en;q=0.5');
http.Headers.Add('Connection: keep-alive');
но это ничего не изменило.
Браузер еще отправляет кукисы, но их ведь сначала нужно получить, а у меня при первом же запросе 500 ошибка. Прошу помочь разобраться.
m.a.x.i.m вне форума Ответить с цитированием
Старый 06.05.2015, 21:53   #2
Terikon
Форумчанин
 
Регистрация: 22.02.2009
Сообщений: 174
По умолчанию

юзер агент нужен

у меня вот так заработало

Код:
procedure TForm36.btn1Click(Sender: TObject);
var
  http: THttpSend;
begin
  http := THttpSend.Create;
  http.UserAgent :=
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0';
  http.HTTPMethod('GET', 'https://bitinfocharts.com');
  Showmessage(inttostr(http.ResultCode));
  http.free;
end;
Terikon вне форума Ответить с цитированием
Старый 07.05.2015, 08:27   #3
m.a.x.i.m
Пользователь
 
Регистрация: 29.03.2008
Сообщений: 32
По умолчанию

нет, так же возвращает ошибку 500, хотя через браузер все открывается. Скачал браузер файрфокс, 2 вида: партабл версию и тор версию. В этом браузере можно смотреть отправляемый гет запрос. В итоге получил в портабл версии - код 200, а в торе - 403. Как я понял в торе выскочила какая-то защита, нужно ввести капчу.


чем можно посмотреть гет запрос, который отправляет моя программа? Как я понимаю, код ниже должен полностью имитировать запрос браузера, но почему тогда в ответ все-равно приходит ошибка?
Код:
var
  http: THttpSend;
begin
  http := THttpSend.Create;
  http.UserAgent :=
    'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0';
  HTTP.Protocol := '1.1';
  http.Headers.Add('Accept-Encoding: gzip,deflate');
  http.Headers.Add('Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8');
  http.Headers.Add('Accept-Language: en-US,en;q=0.5');
  http.Headers.Add('Connection: keep-alive');
  http.HTTPMethod('GET', 'https://bitinfocharts.com');
  Showmessage(inttostr(http.ResultCode));
  http.free;
end;
странно что у вас работает, получается меня банит по айпи, но тогда и мой браузер выдавал бы ответ с ошибкой 500

Последний раз редактировалось m.a.x.i.m; 07.05.2015 в 08:31.
m.a.x.i.m вне форума Ответить с цитированием
Старый 07.05.2015, 17:58   #4
m.a.x.i.m
Пользователь
 
Регистрация: 29.03.2008
Сообщений: 32
По умолчанию

отписываю решение, оказалось, что ексе файл возвращает ошибку 500 только если рядом лежат длл-ки libeay32.dll msvcr71.dll и ssleay32.dll. Если их убрать, то все нормально работает. Блин, я уже и забыл зачем я их туда положил.
m.a.x.i.m вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JSON (SuperObject) and Synapse(HTTPS) LiteCrew Работа с сетью в Delphi 1 15.02.2015 20:34
Synapse + HTTPS = 404 chikaga Работа с сетью в Delphi 10 17.01.2014 23:03
delphi xe3 synapse https GaMeSTeR Работа с сетью в Delphi 1 10.10.2013 15:41
Авторизация на Delphi7+Indy+HTTPS AndreiST Работа с сетью в Delphi 8 30.01.2013 10:46
Synapse + OpenSSL + HTTPS - проверка сертификата STRELOK-2007 Работа с сетью в Delphi 6 10.11.2011 06:11