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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Метод POST, Нада передовать скрипту на сервере данны 
:(
    Опции темы
p0s0l
Дата 6.11.2004, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(Zlo @ 6.11.2004, 16:41)

В нее наверно надо чтото записать, если да то что?
Дак уж тебе решать, что туда писать smile

Ты скажи конкретнее, какой запрос тебе надо послать ?
В большинстве случаев можно обойтись:
Код
IdHTTP1.Get('http://server/page.php?param1=value1&param2=value2&param3=value3...');




--------------------
С уважением, г-н Посол.
PM   Вверх
_hunter
Дата 6.11.2004, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



не получится ( у него запрос для этого слишком длинный )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
p0s0l
Дата 6.11.2004, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(_hunter @ 6.11.2004, 22:41)

не получится ( у него запрос для этого слишком длинный )
Опс! Я когда это писал, не посмотрел, что есть вторая страница smile

Тогда, как вариант, можно разбить строку так:
Код
IdHTTP1.Get(
'http://www.server.ru/phpBB2/profile.php?username=Zlo-2'+
'&[email protected]' +
'&new_password=123' +
...);

Добавлено @ 23:18
А лучше делай Post, как уже написали...


--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 7.11.2004, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



_hunter
в запросе параметры перечисляится через '&' тогда писать наверное нада так:
Код

var s : TStringList;
     buffer: TStream;    
begin
 s := TStringList.Create;
 s.Add('username=Zlo-2');
 s.Add('&[email protected]');
 s.Add('&new_password=123');
.. и т.д.
 buffer = TMemoryStream.Create();
 IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php', s, buffer);
 buffer.Free();
 s.Free;
end;

что скажешь? я прав?

И еще какнибудь можно посмотреть хтмл страницу после пост запроса в Memo?
А то если написать вот так:
Код

Memo3.Lines.Text:=idHTTP1.Post('http://www.server.ru/phpBB2/profile.php',s, buffer);

Дельфя выдает ошибку что типы несовместимы smile

_hunter
Попробавал сделать как ты предложил, все таже фигня smile
Только теперь это идет как исключительная ситуация

Если нужен текст сообщения об ошибке то могу написать.

Это сообщение отредактировал(а) Zlo - 7.11.2004, 05:24
PM MAIL   Вверх
p0s0l
Дата 7.11.2004, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(Zlo @ 7.11.2004, 00:35)

что скажешь? я прав?
Символы & автоматом ставятся... Вручную ставить не надо...



--------------------
С уважением, г-н Посол.
PM   Вверх
p0s0l
Дата 7.11.2004, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(Zlo @ 7.11.2004, 00:35)

А то если написать вот так:


Цитата(Zlo @ 7.11.2004, 00:35)

Дельфя выдает ошибку что типы несовместимы

Сделай так:
Код
Memo3.Lines.Text:=idHTTP1.Post('http://www.server.ru/phpBB2/profile.php',s);


Тебе надо разобраться, что такое перегрузка функций, чтобы не путаться...



--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 8.11.2004, 03:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



p0s0l
Сделал как сказал.
Ошибка с типами пропала smile

но всеравно когда начинается выполнение функции POST программа вылетает с ошибкой.

PM MAIL   Вверх
p0s0l
Дата 8.11.2004, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Какая ошибка ?


--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 8.11.2004, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



p0s0l
Вот это выдает если запускать не из под делфи ИДЕ:

HTTP/1.1 302 Found.

А вот это если из под делфи:

Project Project1.exe raised exception class EidHTTPPritocolException with message 'HTTP/1.1 302 Found'. Process
stopped.


Вобщемто одно и тоже.

Это сообщение отредактировал(а) Zlo - 8.11.2004, 14:46
PM MAIL   Вверх
p0s0l
Дата 9.11.2004, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Шо за ошибка такая ? smile
Вроде типа редиректа, я так понял...
Ты можешь дать полный урл к этой странице ?
Или показать всё содержимое Memo1 (куда ты пишешь ответ с сервера)... Должен быть указан новый URL - его и надо юзать будет...

Но в IdHTTP встроена поддержка редиректов, попробуй поставить свойство HandleRedirects в True (по умолчанию False), и RedirectMaximum поставь хотя бы 1 (по умолчанию стоит 15, так что если не трогал - то не трожь smile)


--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 9.11.2004, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



p0s0l
Урл?
вот держи
http://www.nef.ru/phpBB2/profile.php?mode=...ter&agreed=true

Но вроде редиректа нет.
А в меме нечего не записывается, он пустой остается, и ошбка вылезает
PM MAIL   Вверх
p0s0l
Дата 9.11.2004, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Цитата(Zlo @ 9.11.2004, 00:36)
p0s0l
Урл?
вот держи
http://www.nef.ru/phpBB2/profile.php?mode=...ter&agreed=true
У меня такое нормально рабоатет smile, без ошибок, страница получается нормально... Странно...
Код
 memo1.text := idhttp1.Get('http://www.nef.ru/phpBB2/profile.php?mode=register&agreed=true');



Цитата(Zlo @ 9.11.2004, 00:36)
А в меме нечего не записывается, он пустой остается, и ошбка вылезает
Надо заключить IdHTTP1.Get в блок try..except (и использовать вариант вызова, где ответ идёт в поток), также попробуй вывести что после .Get содержится в IdHTTP1.ResponseText...

Это сообщение отредактировал(а) p0s0l - 9.11.2004, 07:32


--------------------
С уважением, г-н Посол.
PM   Вверх
Zlo
Дата 9.11.2004, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



p0s0l
извени меня конечно за возможно тупые вопросы но как это сделать:

Цитата(p0s0l @ 9.11.2004, 07:25)
Надо заключить IdHTTP1.Get в блок try..except (и использовать вариант вызова, где ответ идёт в поток)

???
PM MAIL   Вверх
_hunter
Дата 9.11.2004, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



ух ты сколько тут наотвечали...
что-то уведомление об ответе глючит.

Цитата

то если написать вот так:
Код
Memo3.Lines.Text:=idHTTP1.Post('http://www.server.ru/phpBB2/profile.php',s, buffer);

Дельфя выдает ошибку что типы несовместимы


та и должно быть smile ( а ответ хранится в buffer )
и перегнат его в тот же StringList можно методом TStrings LoadFromStream()

Цитата
извени меня конечно за возможно тупые вопросы но как это сделать


делается это так:
Код

try
IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php', s, buffer);
finally
end;

finally пустой потому как в принципе всю обработку можно делать с помощью ResponseCode


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
p0s0l
Дата 9.11.2004, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

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



Всё-таки, дай ту ссылку, которая глючит, а не эту:
http://www.nef.ru/phpBB2/profile.php?mode=...ter&agreed=true
smile

Чтобы получше разобраться с ошибкой, делай так:
Код
var
 url : string;
 rs : TMemoryStream;
 s : string;
begin
 URL := 'http://www.nef.ru/phpBB2/profile.php?mode=register&agreed=true';
 rs := TMemoryStream.Create;
 try
   IdHTTP1.Get(URL, rs);
 except
 end;
 Memo1.Text := PChar(rs.Memory);
 Memo1.Lines.Add('----');
 Memo1.Lines.Add(IntToStr(IdHTTP1.ResponseCode));
 Memo1.Lines.Add(IdHTTP1.ResponseText);
 IdHTTP1.Response.ContentStream.Position := 0;
 SetLength (s, IdHTTP1.Response.ContentLength);
 IdHTTP1.Response.ContentStream.Read(s[1], Length(s));
 Memo1.Lines.Add(s);
 rs.Free;
end;
(тут много лишнего, но на всякий случай smile)


Добавлено @ 14:50
Цитата
делается это так:
Если у него Exception (а так оно получается), то надо try..except, а не try..finally



--------------------
С уважением, г-н Посол.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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