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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
11-1056813188
Dimaxx
2003-06-28 19:13
2004.03.28
Про нажатия клавиш


1-1078957801
Armen
2004-03-11 01:30
2004.03.28
Access Violation


1-1078571472
oleg_SYS
2004-03-06 14:11
2004.03.28
Как узнать реальный размер иконки?


3-1076933565
Александр
2004-02-16 15:12
2004.03.28
LocateNext


14-1077441214
able
2004-02-22 12:13
2004.03.28
Скачавание кусками