Форум: "Сети";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
ВнизPost в IdHTTP Найти похожие ветки
← →
Programist21 (2003-02-20 16:21) [0]Люди, помогите пожалуйста! Уже бьюсь дня три над проблемой, и не могу её решить :( В IdHTTP надо сделать простой Post, но ничего не получается.
Делаю так: допустим нужен post на адрес: http://127.0.0.1/mail.cgi?mail=mail@mail.com&subj=Hello!
var T: TStringList
...
T.Add("mail=mail@mail.com");
T.Add("subj=Hello!");
IdHTTP.Post(" http://127.0.0.1/mail.cgi", T, nil);
...
Кто-нибудь что-нить подскажите!?
← →
Reindeer Moss Eater (2003-02-20 16:35) [1]Версия Indy?
Вариант с запросом в файле:
function Post(AURL: string; const ASource: TStream): string;
тоже не работает?
← →
Programist21 (2003-02-20 18:29) [2]Нет!!!
← →
Programist21 (2003-02-21 11:53) [3]И что, никто ничего незнает?!
← →
Reindeer Moss Eater (2003-02-21 11:53) [4]Версия Indy?
← →
Anatoly Podgoretsky (2003-02-21 12:04) [5]Он же ответил Нет!!!
← →
Reindeer Moss Eater (2003-02-21 12:16) [6]Я просто подумал, что он после (20.02.03 18:29) успел установить Indy, имеющую версию.
← →
Chubais (2003-02-21 13:27) [7])))))
хоть бы написал, чо не получается - скомпилить или денех за программу получить)))))или чо другое...
← →
Programist21 (2003-02-22 15:10) [8]Версия Indy: 8.0.25
Дельфи 6.0
← →
nikkie (2003-02-23 17:53) [9]>Programist21
что конкретно не работает-то? может проблема в твоем cgi?
судя по тому, что ты написал адрес
http://127.0.0.1/mail.cgi?mail=mail@mail.com&subj=Hello!
могу предположить, что тебе требуется не POST, а GET запрос.
← →
Programist21 (2003-02-24 11:27) [10]С cgi - всё ок. Но в форме (HTML) запрос именно Post, а не GET!!!
← →
Programist21 (2003-02-25 07:38) [11]Ну и никто нефига незнает :(
← →
nikkie (2003-02-25 13:30) [12]Прежде всего ты сам не знаешь, что у тебя не работает. Или никому сказать не хочешь. А народ здесь гаданиями не занимается.
У тебя может
1. не компилится программа
2. выскакивает access violation
3. выскакивает ошибка сокета
4. cgi не получает данные
да и мало ли что еще...
Только если хочешь помощи - напиши подробно, что и как ты делаешь. Как сделал cgi, как проверяешь его работоспособность. А если хочешь сделать робота, чтобы бомбить форум, то извини...
← →
Programist (2003-02-25 14:35) [13]to nikkie ©
1. А мы не знакомы?! :)
2. - прога компилится и работает;
- не выскакивает никаких access violation;
- нет ошибок Сокета;
- А вот на счёт cgi я незнаю :(
Возможно cgi не получает данные, возможно получает не верные
данные, возможно ещё что-нибудь... Дело именно в Post"e.
По идее, когда делаю Post в Response (т.е. в последнем
параметре) должен содержаться ответ сервера. Оттуда же всегда
приходит пустота :(
Не боись, форумы закидывать не буду ;) Я отправляю мессаги
через форму на сайте сотовой компании. Естественно проверяю
смотря на мобильник :)
← →
nikkie (2003-02-25 16:45) [14]1. Да кто ж тебя, анонима, знает...
2. Параметры вроде правильно отправлешь. Но параметры это еще не все. Может они там куки используют, или отсекают клиентов с непонятными агентами, или еще что.
Поскольку из браузера все работает, тебе надо добиться того же самого поведения от своей программы. Напиши программку-логгер, которая будет делать map локального порта на нужный сайт. Сделай так чтобы браузер посылал пост на твой локальный порт (сохрани и подправь формочку). Запиши, что он туда послал. Добейся, чтобы твоя программа отсылала то же самое.
← →
Programist (2003-02-26 11:19) [15]Если я вбиваю строчку запроса в IE и жму Enter (по идее это
GET получается). То сообщение приходит. С Post"ом это, как уже
говорил, не катит. В агент вписываю IE.
Сейчас думаю, а все ли я данные по Post"у, какие надо, передаю?
Хм... map... интересно... Но как его с нуля сделать. Взять
Client и Server Scoket"ы и перекидывать всё что на один пришло
на другой?! Так?!
← →
Reals (2003-02-26 11:36) [16]Ну а ты попробуй все-таки запрос послать как Get:
NMHTTP.Get( http://127.0.0.1/mail.cgi?mail=mail@mail.com&subj=Hello!");
у меня например это работает вNMHTTP.Body;
есть и ответ от сервера.
← →
nikkie (2003-02-26 15:01) [17]>Если я вбиваю строчку запроса в IE и жму Enter (по идее это
GET получается). То сообщение приходит. С Post"ом это, как уже
говорил, не катит.
я шизею :)
что ж ты нам всем голову морочил?
← →
Programist (2003-02-28 11:17) [18]to nikkie Ты Get от Post"а отличить можешь? Вот мне Post нужен был...
← →
nikkie (2003-02-28 11:26) [19]>Programist
Я рад, что ты знаешь разницу между GET от POST. Только надо думать, прежде, чем что-то делать. Если чужой скрипт не работает с методом POST, то ты его и не заставишь, хоть разбейся. Попробуй в html поменять метод - если из браузера не будет работать, то и твоя программа тут не поможет.
И вот понять я не могу - чего ты в этот POST уперся?
← →
S@shka (2003-03-02 14:05) [20]Да вообщем-то все очень даже и просто.
-----------------------------------------
var
A : TSTRINGS;
B : TStringSTREAM;
ST : STRING;
begin
A := TStringList.Create;
B := TStringStream.Create("");
A.Add ("Ну то что надо и сколько надо");
try
idHTTP.Post(_URL,A,B);
except on E : Exception do
ShowMessage ("Error when connect: " + E.Message);
end;
ST := B.DataString; // ответ сервера на запрос
A.Free;
B.Free;
end;
← →
Programist (2003-03-03 12:20) [21]to nikkie Это не я в него упёрся! Это скрипт такой :)
to S@shka Да, "спасибо" просветил :)))...
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2003.04.24;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.013 c