1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Indy и POST запросы на HTTPS

Тема в разделе "Программирование", создана пользователем PsCribbex, 7 июл 2015.

  1. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    У меня тут самый настоящий полтергейст :noti:, нужно отправить POST запрос на сайт mail.ru, спросите ну и в чём проблема?, а проблема в том что при отправки POST запроса: Вытекают самые разные ошибки :D, к примеру: Socket Error #0, Socket Error #10054 и тп.

    Вот исходный код:
    Код:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL,
      IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
      IdHTTP, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        IdHTTP1: TIdHTTP;
        IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.Button1Click(Sender: TObject);
    var
      PostData: TStringList;
      Response: String;
    begin
      PostData := TStringList.Create;
      PostData.Add('param=test');
    
      IdHTTP1.ConnectTimeout := 99999;
      IdHTTP1.ReadTimeout := 99999;
    
      Response := IdHTTP1.Post('https://mail.ru', PostData);
      Memo1.Text := Response + IdHTTP1.ResponseText;
    end;
    
    end.
    
    
    OpenSSL Установил.
    Файлы: libeay32.dll, ssleay32.dll в папке с программой.
    Кстати если изменить POST на GET всё ок!

    В чём ошибка?, жду вашей помощи, потому что у самого уже мозг кипит 2 дня я бьюсь над этой ошибкой, скачивал разные версии OpenSSL, обшарил десятки форумов. Всё привёло к 0. :help:
     
    Метки:
  2. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    используй winsock
     
  3. Hemul

    Hemul

    Регистрация:
    30 ноя 2014
    Сообщения:
    280
    Симпатии:
    195
    может сам майл мозга ебёт, не?
     
  4. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Не пробывал на других сайтах, тоже самое.
     
  5. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Попробую, но интересно в чём же дело), может это Indy, попробую 9 версию поставит....
     
  6. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Теперь пишет: "Connection Closed Gracedully" :ilthis:
     
  7. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    useragent...
     
  8. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Неее пробывал!
    Код:
    IdHTTP1.Request.CustomHeaders.Add('Content-Type: application/x-www-form-urlencoded;');
     
  9. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    получилось?
     
  10. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    0 Эмоций, сейчас с помощью Charles'a узнал что сервер закрывает соединение перед отправкой заголовков: Remote server closed the connection before sending response header
     
  11. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Вот чёрт)))) бляя ну наконец то)) если бы не Charles я бы вообще умер от перегрузки :D, в общем теперь всё ок)
    Расскажу что было вдруг кому то понадобится:

    Запустил Charles отправил нужный мне запрос напрямую с сайта, после зашёл в зашёл в Delphi скомпилировал и отправил запрос из программы, сравнил отправляемые заголовки и удивился, в коде я добавил Content-Type - "application/x-www-form-urlencoded" но Charles говорить что я отправил Content-Type - "text/html", проверил в коде всё ок! решил напрямую в свойствах компонента IdHTTP из изменить Content-Type на нужный и воля))) всё работает без отказно) Спасибо всем кто давал советы)
     
    • Like Like x 2
  12. EEjester

    EEjester hack_the_god

    Регистрация:
    25 окт 2012
    Сообщения:
    1.326
    Симпатии:
    941
    яб убился еслиб на такой проблеме на целый день встрял)))
     
  13. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Вот и я о том же), одна проблема решилась, вот теперь та же проблема только с Delphi EX, только тут я уже и в свойствах компонента IdHTTP указал и просто указал но Charles говорить что скомпилированная программа вообще не Content-Type не передаёт :D:D:D
    ------------
    Сейчас посмотрел, оказывается компонент IdHTTP в Delphi EX при работе с протоколом HTTPS Сontent-Type Вообще не передаёт на любые сайты)
     
    Последнее редактирование: 7 июл 2015
  14. K_NoW

    K_NoW HackMe Please

    Регистрация:
    16 мар 2014
    Сообщения:
    464
    Симпатии:
    222
    нужно использовать synapse
     
  15. TopicStarter Overlay
    PsCribbex

    PsCribbex

    Регистрация:
    25 мар 2015
    Сообщения:
    75
    Симпатии:
    61
    Давно хотел, ну пока всё ок)
     

Поделиться этой страницей

Загрузка...