![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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! Встроенная справка по этому компоненту так примитивна, что лучше ее бы не было!