[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. niva622

    niva622 New Member

    Joined:
    4 Nov 2008
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, Подскажите как передать куки на сервер.... на Delphi 10..
    т.е Нужно Передать куки на сервер и отправить get запрос.. что бы авторизоваться через кукисы...
     
  2. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Использовать компонент IdCookieManager, или парсить/редактировать заголовки.
     
  3. niva622

    niva622 New Member

    Joined:
    4 Nov 2008
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    AURL: TIdURI.Create('host.ru');
    IdCookieManager.AddCookie('JSESSIONID=gfgjfgjfgfgnbnvnbnfg', AURL );
    IdHtp1.Get('http://host.ru/');

    Попробовал так не выходит, не передает кукисы... побывал и другие варианты, ничего не проходит...
     
  4. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    IdHTTP1.Request.CustomHeaders.Add('Cookie:JSESSIONID=gfgjfgjfgfgn bnvnbnfg');
    И так тоже?
    З.Ы. IdHttp.AllowCookie := false;
     
  5. niva622

    niva622 New Member

    Joined:
    4 Nov 2008
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Получилось но это не то, он должен передать куки те которые нужно, после принять те которые дает сайт... надеюсь не запутал в 7-ой я делал это так
    IdCookieManager.AddCookie('uid=parametr','host.ru');
    IdCookieManagerAddCookie('JSESSION='+edt10.text+'','host.ru');

    IdHTtP1.CookieManager.CookieCollection.Items[0].Path := '/';
    IdHTtP1.CookieManager.CookieCollection.Items[1].Path := '/';
     
  6. niva622

    niva622 New Member

    Joined:
    4 Nov 2008
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Еще вопрос, есть IdHTtP1, при нажатии по кнопке будет выполняться строка типа:
    dhtp1.Get('http://ya.ru') ;
    idhtp1.Get('http://ya.ru') ;
    idhtp1.Get('http://ya.ru') ;
    .... итд

    Как сделать так что бы программа отправляла запросы в несколько потоков, TThread не предлагать, либо если нет выхода и нужно юзать TThread то помогите с кодом плиз...
     
  7. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    можно так: (Delphi 2010 и выше)
    Code:
    uses
      Classes;
    //...
    TThread.CreateAnonimusThread(procedure begin AIdHTTP.Get('http://ya.ru') end);
    
     
  8. niva622

    niva622 New Member

    Joined:
    4 Nov 2008
    Messages:
    17
    Likes Received:
    0
    Reputations:
    0
    Спасибо с этим разобрался...
    Столкнулся еще с одной проблемой, обработчик исключений, вот я привел пример для определенного запроса, подскажите пожалуйста как записать так что бы при каждой отправке запроса проверялось на ошибку.. (т.е есть много кнопок на форме и все отправляют какие то запросы, нужно записать куда то один раз что бы ошибок не было) надеюсь я не кого не запутал... сразу извинюсь за слегка простые вопросы... Спасибо
    try
    idhttp1.get('http://ya.ru');
    except
    on E: Exception do
    SHOWMESSAGE('You error ' +E.Message);
    end;
     
  9. ADR-007

    ADR-007 Member

    Joined:
    12 Jul 2010
    Messages:
    218
    Likes Received:
    9
    Reputations:
    0
    Code:
    function Reques(AURL: string; PostData: TStrings = nil): string;
    begin
      try
        if Assigned(PostData) then
          Result := FIdHTTP.Post(AURL, PostData)
        else
          Result := FIdHTTP.Get(AURL);
      except
        on E: EIdException do
          ShowMessage('Load Error: ' + E.Message);
      end;
    end;
     
  10. konstantin11

    konstantin11 New Member

    Joined:
    1 Nov 2011
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Нужна помощь!

    Предмет работы- биржевая информация. Нужно экспортировать некоторые данные из программы (торгового терминала) и настроить их отображение на сайте.

    Должно получиться что-то подобное:

    Спреды: http://www.forexpros.ru/brokers/compare-spreads-eur-usd
    Котировки: http://www.forexpros.ru/brokers/compare-quotes-eur-usd


    Как я понимаю, нужно разбираться в этом:
    API (Application Programming Interface)
    DDE (Dynamic Data Exchange).


    Также один опытнчй человек написал (цитирую дословно) что:

    Это традиционное программирование для публикации базы данных на WEB-узел. Например, использование ASP-сценария, извлекающего информацию из базы данных и помещение HTML-документ.
    Формирование ASP-страницы, связанной с базой данных, проходит в 3 этапа.
    1. Создание базы данных на основе MS Access;
    2. На своем WEB-сервере создать DSN. Это даст возможность сценариям находить базу данных и подключаться к ней.
    3. Написать ASP-сценарий, использующий технологию ADO для создания объектов RECORDSET и выдаче базе данных требуемых инструкций SQL


    Кто знает как?

    Skype: papakarloegor
     
  11. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Как определить что версия windows vista или seven ? Если версия Windows не семерка и не Vista то возвращать False.
     
  12. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    http://superadm.net/index.php?name=pages&op=view&id=180
     
  13. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    А вы сами туда входили? )
     
  14. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    Всмысле входил? Семрку и висту определять не приходилось, определял с помощью dwWindowsMajor(Minor)Version...
     
  15. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    По данной ссылке) Там картинка с сообщением АХТУНГ! ))
     
  16. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    [​IMG]
     
  17. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Скиньте пожалуйста сюда код. А то я в гугле то нашел это дело. А вот зайти на сайт не получилось.
     
  18. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    PHP:
    function CheckWindowsSevenInteger;
     var   
    osVerInfoTOSVersionInfo;
     
    begin
       osVerInfo
    .dwOSVersionInfoSize := SizeOf(TOSVersionInfo);
       if 
    GetVersionEx(osVerInfothen
       begin
         with osVerInfo 
    do
         
    begin
           
    if (dwMajorVersion 6) and (dwMinorVersion 1) and         (dwBuildNumber >= 7600then
             Result 
    := 1
           
    else
             
    Result := 0;
         
    end;
       
    end 
      
    else
         
    Result := -1
     end
    ;





    procedure TForm1.Button1Click(SenderTObject);
    begin
      
    case CheckWindowsSeven of
        
    1:
          
    Application.MessageBox('Не удалось определить версию Windows''');
        
    0:
          
    Application.MessageBox('Windows Vista или ниже''');
        
    1:
          
    Application.MessageBox('Windows 7 или Windows Server 2008 R2''');
      
    end;
    end;

     
  19. Rastamanka

    Rastamanka Elder - Старейшина

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Спасибо) Не подскажите как открыть определенное приложения через Delphi имея полный путь до программы через ShellExecute, а потом его закрыть.

    Открывать как нашел. Через
    Code:
    ShellExecute(AutoRunners.Handle,'open','C:\1.exe',nil,nil,SW_Normal);
     
  20. patcher

    patcher Banned

    Joined:
    15 Dec 2009
    Messages:
    190
    Likes Received:
    37
    Reputations:
    10
    Rastamanka,
    Code:
    uses Tlhelp32;
    ...
    function KillTask(ExeFileName:string):integer;
    const
    PROCESS_TERMINATE=$0001;
    var
    Co:BOOL;
    FS:THandle;
    FP:TProcessEntry32;
    begin
    result:=0;
    FS:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
    FP.dwSize:=Sizeof(FP);
    Co:=Process32First(FS,FP);
    while integer(Co) <> 0 do
    begin
    if ((UpperCase(ExtractFileName(FP.szExeFile))=UpperCase(ExeFileName)) or
    (UpperCase(FP.szExeFile)=UpperCase(ExeFileName))) then
    Result:=Integer(TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
    FP.th32ProcessID),0));
    Co:=Process32Next(FS,FP);
    end;
    CloseHandle(FS);
    end;
    
     
Thread Status:
Not open for further replies.