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

Вниз

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

Наверх




Память: 0.51 MB
Время: 0.011 c
1-76995
Deadlock
2003-04-13 03:17
2003.04.24
Сортировка компонентов в Components


4-77216
afalic
2003-02-26 13:49
2003.04.24
Сетевые сообщения


3-76822
Мыш
2003-04-01 08:46
2003.04.24
Связь полей в таблицах


1-77019
Василий Петрович
2003-04-13 23:51
2003.04.24
вопрос про число


1-76951
Paladin
2003-04-06 17:44
2003.04.24
Как правильно организовать подкомпоненты?