Форум: "Сети";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизIdHTTP.Post ... Найти похожие ветки
← →
Delphi5.01 © (2004-01-10 22:58) [0]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-11 15:57) [1]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! Встроенная справка по этому компоненту так примитивна, что лучше ее бы не было!
← →
Slym © (2004-01-12 07:33) [2]_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-12 19:09) [3]Ogromnoe spasibo za pomosh, ia uje dumal chto ne naidu pravilnogo otveta.
← →
Delphi5.01 © (2004-01-12 20:38) [4]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
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c