Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
ВнизCGI и TNMHTTP.Post Найти похожие ветки
← →
L.eXX (2002-03-15 00:00) [0]Привет всем! Такая проблема: чтобы узнать мой траффик мне приходится лезть на сервер в локальной сетке, на html-страничке заполнять форму и нажимать кнопку "Получить статистику" :) Возникло естественное желание автоматизировать этот процесс. Вобщем, запрос из формы обрабатывается cgi-скриптом. Я использую метод Post компонента NMHTTP. Форма на страничке выглядит примерно так:
<form method=post action= http://info.server/user/stats.cgi>
<input type=text name=syear size=4 value="2002">
<input type=text name=smonth size=2 value="03">
<input type=text name=sday size=2 value="01">
<input type=submit name=submit value="Получить статистику"
</form>
На сколько я понимаю, запрос выглядит так:
http://info.server/user/stats.cgi?syear=2002&smonth=03&sday=01
Тогда в программе я пишу:
NMHTTP1.Post(" http://info.server/user/stats.cgi","?syear=2002&smonth=03&sday=01");
Судя по сообщениям, HTTP POST выполняется успешно.
В NMHTTP1.Body имею страничку следующего содержания:
"Статистика по траффику с ?/?/? по сегодня (14/03/2002) не найдена"
То есть получается что скрипт не получил ниодного значения переменных :( Что посоветуете?
← →
L.eXX (2002-03-20 00:54) [1]Уважаемые мастера! :)
Может быть тогда кто-нибудь мне даст рабочий примерчик как с помощью Indy (IdHTTP или ещё чего) выполнить метод Post? а то сам компонент я скачал, а help к нему - никак...
← →
Kornet (2002-03-20 07:36) [2]Для начала твой вариант ( http://info.server/user/stats.cgi?syear=2002&smonth=03&sday=01) - неверный. Это пересылка данных по методу GET. В посте это должно выглядит так:
NMHTTP1.Post(" http://info.server/user/stats.cgi",PostData);
где, PostData=
"syear=2002&"+
"smonth=03&"+
"sday=01";
т.е. переменные передаются не в урле, а в теле http-запроса.
← →
L.eXX (2002-03-22 04:01) [3]Да, попробовал я и так. Но всё-равно результат остался прежний - переменных скрипт не получил. ;-\
what the....
Интересно, а может быть этотTNMHTTP.Post
вообще шлёт неправильно? Как бы проверить?
← →
L.eXX (2002-03-30 01:00) [4]Мастера, неужели мнения иссякли? :)
← →
ec (2002-04-02 15:52) [5]Я тоже столкнулся с такой проблемой, это кажется NMHTTP глючный,
переменную на сайт отравляю, всё ок, но информация кудато проподает
← →
ec (2002-04-02 16:02) [6]Я писал так
NMHTTP1.Post(" http://ecsoft.japanesesword.info/addsmtp1.php",s);
где s
s:=("smtp=www.mail.ru");
можете сами попробовать на сайте добавить что-нить, через web работает а через делфи нет.
Сама переменная как-бы принимается, но добовляется только пустая строка.
Кто нить плиз помогите
← →
Alex_LG (2002-04-03 18:03) [7]если мне память не изменяет, этот компонент дату просто не посылает (ошибка в коде)
лучше всего настроить его для работы через локальный прокси и посмотреть, чё он там шлёт/нешлёт
← →
ec (2002-04-05 16:46) [8]Прикол в что другой компонент INDy делат точно такую же ошибку,отправляется пустая строка, работает только GET.
← →
ec (2002-04-11 14:35) [9]http://www.torry.net/vcl/internet/packs/ims2d5.exe
Этот компонент исправно отсылет всю инфу, почему стандартный компонент и indy глючат - неизвестно, наверно там какая то ошибка при чём у обоих
← →
Alex_LG (2002-04-12 03:41) [10]повторяю: эти компоненты соержат ошибку в коде
а именно: при посылке POST слишком рано закрывают сокет (или что-то там - щас уже не помню) и поэтому посылается только заголовок, а тело (дата) - не посылается
лечится очень просто: в сурсах компонентов переносится команда закрытия сокета на несколько строчек дальше
у меня тоже не работало, пока не исправил (а искать - 2 минуты)
← →
Ведмедь (2002-04-12 11:34) [11]2 ес
Кстати, не в IDE это не работает
← →
Alex_LG (2002-04-12 22:12) [12]
> Ведмедь (12.04.02 11:34)
> 2 ес
> Кстати, не в IDE это не работает
что - ЭТО???
← →
ec (2002-04-15 15:20) [13]Можна ещё проще сделать. СКАЧАТЬ ДРУГОЙ КОМПОНЕНТ!!!
← →
ec (2002-04-18 20:43) [14]Это я ктому что NMHTTP И INDY НЕ ПАШУТ, возможно что Indy это вообще клон.
С помощью ims2d5 отослать удалось Постом, тока эта хрень демка и без делфи не пашет.
Ведмедь поищи бесплатный и работающий на www.delphipages.com. Я что то не могу такой найти, или они демки или не хрена не отсылает
← →
Alex_LG (2002-04-19 03:35) [15]скейчас СПЕЦИАЛЬНО посмотрел: последний INDY всё прекрасно посылает!
INDY 9.0.3-B
http://www.nevrona.com/indy/
← →
ec (2002-04-19 14:43) [16]У меня старыы был. Сорри если ошибся.
← →
ec (2002-04-19 14:45) [17]У меня старый был. Сорри если ошибся.
← →
AZoG (2002-04-19 15:44) [18]Прекрасно работает, если его использовать таким образом: NMHTTP.Post(URl, FileName)
← →
ec (2002-04-22 13:21) [19]а в filename файле что писать ?
← →
ec (2002-04-25 13:10) [20]Alex_LG:
Может расскажешь как посылал ? У меня всё равно не посылает.
Если можешь скинь исходник на емаил. web@japanesesword.info
← →
eblade (2002-05-08 01:31) [21]
> AZoG (19.04.02 15:44)
> Прекрасно работает, если его использовать таким образом:
> NMHTTP.Post(URl,FileName)
Действительно, AZoG прав. Если постить данные из файла (FileName - это его имя), все проходит нормально. (При этом желательно указывать NMHTTP.OutputFileMode := TRUE;)
Хотя это очень странно, что работает только в таком режиме.
← →
plimut (2002-06-21 14:30) [22]Господа... Предположим, я хочу только посылать данные, а не
принимать обратно все многокилобайтовое барахло.
Как поступить?
← →
Dimonets (2002-06-21 20:04) [23]Есть проблемка - как передать из делфи на сервер файл?
Те не данные методом пост или гет а именно файл, как это делает эксплорер когда обрабатывает html форму с полем <input type=file>?
Подскажите плз. И как проследить чтобы файл передался полностью?
А так же буду благодарен если посоветуете наиболее подходящий компонент для этого.
Зараннее благодарю.
← →
plimut (2002-06-25 11:01) [24]А метод Copy компонента TNMHTTP часов не поможет?
← →
plimut (2002-06-25 11:03) [25]хм... "часом" я хотел сказать... (Вот оно, эхо выходных...)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.09.02;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.009 c