Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> POST запрос на делфи 5, как idHTTP в delphi 7 
:(
    Опции темы
СЭНСЭЙ
Дата 17.1.2013, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Есть большой проект на Делфи 5. На 7ку его переносить пока не получаетс.
Нужно сделать POST запрос к странице сайта и обработать результат.
В 7й версии есть компонент idHTTP и с его помощью это легко делается.
А как это сделать в 5й версии?
PM MAIL   Вверх
СЭНСЭЙ
Дата 17.1.2013, 17:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Скачал 9ю версию indi компонентов с сайта 
http://indy.fulgan.com/ZIP/
как их установить - не пойму
PM MAIL   Вверх
Akella
Дата 19.1.2013, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Вначале нужно удалить встроенную старую версию.

Добавлено через 8 минут и 54 секунды
а так пробовал?
https://www.google.com/search?ie=UTF-8&...0%BA%D0%B0+Indy

а тут ещё есть закреплённые темы ;)
PM MAIL   Вверх
СЭНСЭЙ
Дата 21.1.2013, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Открыл для себя NMHTTP но к сожалению пока что данные постом посредством NMHTTP.post передать не получается
данные ГЕТом передаются а ПОСТом - нет.
$_POST - пустой массив

Может что то то не так делаю?

PM MAIL   Вверх
Чучмек
Дата 21.1.2013, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Цитата(СЭНСЭЙ @  21.1.2013,  14:30 Найти цитируемый пост)
пока что данные постом посредством NMHTTP.post передать не получается

Весьма корявый компонент. На отрез отказывается соединятся с любым портом кроме 80.
А так работает.
Код

nm:= TNMHTTP.Create(form1);
nm.InputFileMode:=false;
nm.Post('http://vk.com/al_video.php','act=show&al=1&autoplay=1&list=&module=video&video=179671296_164170772');    
memo1.Text:=nm.Body;

Случайно не файл отправить нужно?

Добавлено через 14 минут и 53 секунды
Цитата(Чучмек @  21.1.2013,  16:01 Найти цитируемый пост)
На отрез отказывается соединятся с любым портом кроме 80

Еще бы.
Не знаю, может в других версиях по другому. А в той что у меня имеем
 HMHttp.pas
Код

...
...
{*******************************************************************************************
Carry out HTTP transaction
********************************************************************************************}

procedure TNMHTTP.HTTPConnect;
var
  Handled: boolean;
  LkHead: string;
  tmp: string;
begin
  repeat
    //ParsetheURL;                                   {Parse the URL to get Host, Port and Selector}
    ParseURL(URL_Holder, FScheme, FUser, FPassword, FNetworkLocation, FPort, FPath, FResource, FParameters, FQuery, FFragment);
    if (FUser <> '') or (FPassword <> '') then
      HeaderInfo.FUserId := FUser;
    HeaderInfo.FPassword := FPassword;
    Port := StrToInt(DefaultPort(FScheme));
    Host := FNetworkLocation;
...

Парсится Url
А потом невзирая на FPort, порт назначается по умолчанию для FScheme
Исправляем
Код

procedure TNMHTTP.HTTPConnect;
var
  Handled: boolean;
  LkHead: string;
  tmp: string;
begin
  repeat
    //ParsetheURL;                                   {Parse the URL to get Host, Port and Selector}
    ParseURL(URL_Holder, FScheme, FUser, FPassword, FNetworkLocation, FPort, FPath, FResource, FParameters, FQuery, FFragment);
    if (FUser <> '') or (FPassword <> '') then
      HeaderInfo.FUserId := FUser;
    HeaderInfo.FPassword := FPassword;
    if FPort<>'' then Port:=STRTOINT(PCHAR(@FPort[2])) else
    Port := StrToInt(DefaultPort(FScheme));
    Host := FNetworkLocation;


 




--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Чучмек
Дата 21.1.2013, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Дрянь компонент. Заголовки добавить нельзя. Отправить post c multipart/form-data тоже не получится.
Советую:
a)Все таки попытаться установит indy или что нибудь другое, для работы с http
б)Выдрать модуль IdHTTP и все связанные с ним модули Id... из d7+ .Кинуть их в папку с проектом.IdHTTP  создавать в ручную.
в)Сделать все на сокетах.
г)Создать в d7+ dll для работы с сетью и подключать ее в своем проекте.
д)Переходить на более новую  версию delphi

Это сообщение отредактировал(а) Чучмек - 21.1.2013, 16:52


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Чучмек
Дата 22.1.2013, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 4
Всего: 41



Цитата(СЭНСЭЙ @  17.1.2013,  17:50 Найти цитируемый пост)
как их установить - не пойму 

И какая проблема с установкой?
Распаковываешь архив в например C:\Program Files\Borland\indy9
запускаешь Fulld5.bat
В папке Borland появляется папка d5.
Запускаешь delphi
Component>Install Packages>Add
В созданной d5 выбираешь dclIndy50.bpl 
Жмешь Ok
Если нужны исходники то копируем файлы *.pas и *.inc из indy9 в d5
Или добавляем в "Browsing path" путь к pas файлам.
 

 


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
northener
Дата 22.1.2013, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: нет
Всего: 20



Цитата(Чучмек @  21.1.2013,  16:51 Найти цитируемый пост)
или что нибудь другое, для работы с http

Можно поставить ICS v5 http://www.overbyte.be/frame_index.html


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Akella
Дата 24.1.2013, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Цитата(СЭНСЭЙ @  21.1.2013,  14:30 Найти цитируемый пост)
Открыл для себя NMHTTP но к сожалению пока что данные постом посредством NMHTTP.post передать не получается
данные ГЕТом передаются а ПОСТом - нет.
$_POST - пустой массив

Может что то то не так делаю?



Как всегда - ошибка в 17ой строке ;)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.