работа с запросами

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение chodorenko » 01.12.2005 20:23:37

Вот возникла не тривиальная задача получать раз в несколько дней страничку с одними и темеже параметрами, решил автоматизировать , но не нахожу как организовать получени страницы средствами FPC

итак задача послать на урл <a href='http://test.site/cgi-bin/script.cgi' target='_blank'>http://test.site/cgi-bin/script.cgi</a> форму методом пост ну например такую number=1, number=2, group=1, group=3
и то что скрипт выплюнет обратно положить на с:\русское имя\folder1
chodorenko
 

Сообщение Сергей Смирнов » 01.12.2005 22:16:53

Я юзал библиотеку от Synapse. Вот, например, получение списка валют с сервера ЦБ:
Код: Выделить всё
uses
 ... XMLRead, DOM, httpsend, ...


procedure TfrmMain.GetCurrencies;
var
 HTTP: THTTPSend;
 CurrXML: TXMLDocument;
 N, C: TDomNode;
 E: TDomElement;
 i: Integer;
 TempCursor: TCursor;
begin
 FCurrenciesCount := 0;
 TempCursor := Screen.Cursor;
 Screen.Cursor := crHourGlass;
 Application.ProcessMessages;
 SetLength(FCurrenciesList, 0);
 SetLength(FCurrenciesList, 1);
 i := 0;
 HTTP := THTTPSend.Create;
 try
   HTTP.ProxyHost := PROXY_SERVER;
   HTTP.ProxyPort := PROXY_PORT;
   HTTP.ProxyUser := PROXY_USER;
   HTTP.ProxyPass := PROXY_PASSWORD;
   if HTTP.HTTPMethod('POST', GET_CURRENCIES_URL) then
   begin
     ReadXMLFile(CurrXML, HTTP.Document);
     N := CurrXML.DocumentElement;
     N := N.FirstChild;
     while Assigned(N) do
     begin
       E := N as TDomElement;
       FCurrenciesList[i].ID := E.GetAttribute('ID');
       C := N.FindNode('Name');
       if Assigned(C) then
         FCurrenciesList[i].Name := GetNodeTextContent(C as TDomElement);
       C := N.FindNode('EngName');
       if Assigned(C) then
         FCurrenciesList[i].EngName := GetNodeTextContent(C as TDomElement);
       FCurrenciesCount := i + 1;
       N := N.NextSibling;
       if Assigned(N) then
       begin
         Inc(i);
         SetLength(FCurrenciesList, i + 1);
       end;
     end;
   end
   else
   begin
     btnGetRateHistory.Enabled := False;
   end;
 finally
   HTTP.Free;
   Screen.Cursor := TempCursor;
 end;
end;

Только метод Get у меня как-то не заработал...
Аватара пользователя
Сергей Смирнов
энтузиаст
 
Сообщения: 595
Зарегистрирован: 28.04.2005 13:23:25
Откуда: Москва

Сообщение chodorenko » 02.12.2005 13:33:46

Большое спасибо , пойду разбираться
chodorenko
 


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19

Рейтинг@Mail.ru