Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

post   Найти похожие ветки 

 
Prankster ©   (2004-05-07 23:56) [0]

как отправить http-post запрос скрипту?


 
easy ©   (2004-05-08 13:15) [1]

http://www.sources.ru/delphi/internet/posting_webform.shtml


 
Rouse_ ©   (2004-05-08 13:28) [2]

// Вот здесь и идет запрос
function TFWGetThread.GetUrl(const URL: String): String;
var
 FSession, FConnect, FRequest: HINTERNET;
 FHost, FScript: String;
 Ansi: PAnsiChar;
 Buff: array [0..1023] of Char;
 BytesRead: Cardinal;
begin
 Result := "";
 // Небольшой парсинг
 // вытаскиваем имя хоста и параметры обращения к скрипту
 FHost := DelHttp(Url);
 FScript := Url;
 Delete(FScript, 1, Pos(FHost, FScript) + Length(FHost));

 // Инициализируем WinInet
 FSession := InternetOpen("DMFR", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if not Assigned(FSession) then
 begin
   ReportString := "Unable to initialize Wininet";
   Synchronize(Error);
   Exit;
 end;
 try
   // Попытка соединения с сервером
   FConnect := InternetConnect(FSession, PChar(FHost), HTTP_PORT, nil,
                               "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0);
   if not Assigned(FConnect) then
   begin
     ReportString := "Unable to connect to server!";
     Synchronize(Error);
     Exit;
   end;
   try
     // Подготавливаем запрос страницы
     Ansi := "text/*";
     FRequest := HttpOpenRequest(FConnect, "POST", PChar(FScript), "HTTP/1.0",
                                 "", @Ansi, INTERNET_FLAG_RELOAD, 0);
     if not Assigned(FConnect) then
     begin
       ReportString := "Unable to request page!";
       Synchronize(Error);
       Exit;
     end;
     try
       // Добавляем заголовки
       if not (HttpAddRequestHeaders(FRequest, Header, Length(Header),
                                     HTTP_ADDREQ_FLAG_REPLACE or
                                     HTTP_ADDREQ_FLAG_ADD)) then
       begin
         ReportString := "Unable add headers/form info.";
         Synchronize(Error);
         Exit;
       end;
       // Отправляем запрос
       if not (HttpSendRequest(FRequest, nil, 0, nil, 0)) then
       begin
         ReportString := "Unable send reqest.";
         Synchronize(Error);
         Exit;
       end;
       // Получаем ответ от форума
       FillChar(Buff, SizeOf(Buff), 0);
       repeat
         Result := Result + Buff;
         FillChar(Buff, SizeOf(Buff), 0);
         InternetReadFile(FRequest, @Buff, SizeOf(Buff), BytesRead);
       until BytesRead = 0;
     finally
       InternetCloseHandle(FRequest);
     end;
   finally
     InternetCloseHandle(FConnect);
   end;
 finally
   InternetCloseHandle(FSession);
 end;
end;


Ну и отсюда разруливай...
да, uses WinInet, конечно :)


 
Rouse_ ©   (2004-05-08 13:39) [3]

> easy ©   (08.05.04 13:15)
Дим, кстати заметь, в коде по твоей ссылке имеется вероятность хорошего такого бряка приложения ...



Страницы: 1 вся ветка

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.026 c
3-1086784684
Alex_2004
2004-06-09 16:38
2004.07.04
FastReport


14-1087016393
gek
2004-06-12 08:59
2004.07.04
Вот прочитал в "Комсомолке..."


4-1085493465
webpauk
2004-05-25 17:57
2004.07.04
Ориентация бумаги в принере


1-1087770067
MIGUR
2004-06-21 02:21
2004.07.04
Текст в RES, извлечение в memo.


9-1078948981
Servelat
2004-03-10 23:03
2004.07.04
Arcanoid => Тормоза => Need help!