Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IdHTTP.Post ... [D6, D7, WinXP]


Delphi5.01 ©   (2004-01-10 22:58:00) 

Dobroe vrema sutok!
Pochemu IdHTTP.Post(URL, Stream, Stream) ne rabotaet, ustanovil dake apache server i proveril, ni kakie dannie ne peredautsa php skriptu, Get metod rabotaet bez otkazno mejet chtoto ne pravilno delau?
Spasibo.
P.S. privoju kratki kod

 _URL:=' http://sait.com/sms.php';
 ST:='username=dsd&password=1234';

 A:=TStringStream.Create('');
 B:=TStringStream.Create('');

 ShowMessage(IntToStr(A.Write(St,Length(ST))));
 try
   idHTTP1.Post(_URL,A,B);
   ST:=B.DataString; //polucheni otvet na post
 except on E:Exception do
   ST := '$E ' + E.Message;
 end;
 A.Free;
 B.Free;


Delphi5.01   (2004-01-12 20:38:00) [1]

K sojaleniu nichego ne izmenilos, skript tak i ne poluchaet dannie, odin iz sposobov kotori rabotaet eto:

 NMHTTP:=TNMHTTP.Create(self);
 NMHTTP.Port:=80;
 NMHTTP.Body:='index.html';
 NMHTTP.Header:='head.html';
 NMHTTP.OutputFileMode:=True;
 NMHTTP.InputFileMode:=True;
 NMHTTP.Post(' http://www.sms.ge/index.php','data.txt');
 ShowMessage('Authorization done!');
 NMHTTP.Free;

esli danie schitivautsa iz tekstovogo faila


Delphi5.01   (2004-01-12 19:09:00) [2]

Ogromnoe spasibo za pomosh, ia uje dumal chto ne naidu pravilnogo otveta.


Slym   (2004-01-12 07:33:00) [3]

_URL:=' http://sait.com/sms.php';
ST:='username=dsd&password=1234';

A:=TStringStream.Create('');
B:=TStringStream.Create('');

ShowMessage(IntToStr(A.Write(St,Length(ST))));
A.Position:=0;//stream end :) just rewind them
try
  idHTTP1.Post(_URL,A,B);
  ST:=B.DataString; //polucheni otvet na post
except on E:Exception do
  ST := '$E ' + E.Message;
end;
A.Free;
B.Free;


Delphi5.01   (2004-01-11 15:57:00) [4]

Vot i oshibku nashol no ne znau kak reshit: privoju vopros is drugogo foruma (bez otveta)

Помогите, пожалуйста!

Передо мной поставлена такая задача: Нужно из программы передать данные CGI скрипту на HTTP сервере, получть ответ в виде гипертекста и обработать его. Сначала я попробовал сделать так:
...
NMHTTP1->Get(" http://имя_сервера/cgi.exe?данные");
AnsiString str=NMHTTP1->Body;
...

Но вскоре я понял, что таким образом (методом Get) можно запросить URL только ~280 символов длиной!!! Если длина больше, то строка просто обрезается! А моя программа ДОЛЖНА отправлять данные, превышающие размер в 280 символов.

Выяснив это, я попробовал проделать то же самое, используя метод Post():
NMHTTP1->Post(" http://имя_сервера/cgi.exe","данные");
(и в других различных комбинациях)

Я получал либо ошибку NMHTTP: Host Not Found, либо ошибку скрипта об отсутствии параметров.

Затем я проверил сниффером, что же NMHTTP->Post() посылает и увидел, что обращение к скрипту и передача параметров происходят в двух разных пакетах! Поэтому и возникает ошибка скрипта!

И вот теперь я не знаю как мне быть!  

Если можете, подскажите где мне хотя бы найти дополнительную документацию по TNMHTTP! Встроенная справка по этому компоненту так примитивна, что лучше ее бы не было!


Наверх

Титульная страница Поиск, карта сайта Написать письмо