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

Поиск:

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


Бывалый
*


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

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



Люди тут проблема такая назрела:
Нада передовать скрипту на сервере данные типа логин,пароль,сайт,аська и т.д
Я для этого использую метод Post компанента TNMHTTP (Дельфя 6)
Но ничего у меня неполучается.
Посмотрел с помощью специальной проги как это делает ХТМЛ страница
Вот что показала прога:
Url:http://www.server.ru/phpBB2/profile.php?sid=eff213e8269595b0c6e0d85997c36eb1

PostData:username=Zlo-2&[email protected]&new_password=123&password_confirm=123&icq=268310&aim=&msn=&yim=&website=zlo-raspisanie.narod.ru&location=&occupation=&interests=&signature=%D0%E0%E7%F0%E0%E1%EE%F2%EA%E0+%EF%F0%EE%E3%F0%E0%EC%ED%EE%E3%EE+%EE%E1%E5%F1%EF%E5%F7%E5%ED%E8%FF%21&viewemail=0&hideonline=0&notifyreply=0&notifypm=1&popup_pm=1&attachsig=1&allowbbcode=1&allowhtml=0&allowsmilies=1&language=russian&style=1&timezone=3&dateformat=D+M+d%2C+Y+g%3Ai+a&mode=register&agreed=true&coppa=0&submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC

Referer:http://www.server.ru/phpBB2/profile.php?mode=register&agreed=true

Насколько удалось выяснить неполучается нормально послать запрос из за третьей строки (Referer)
Народ помогите! как сделать чтоб с методом пост еще и отпровлять Referer?
PM MAIL   Вверх
z-END
Дата 31.10.2004, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

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



Чет несовсем вопрос понял, но может быть вариант такой что
Цитата(Zlo @ 31.10.2004, 18:22)

Referer:http://www.server.ru/phpBB2/profile.php?mode=register&agreed=true
это есть метод GET и у меня есть сомнения что GET и POST могут работать вместе



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
p0s0l
Дата 31.10.2004, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



К примеру, в TIdHTTP есть свойство Request, в нём можно поменять Referer
(IdHTTP1.Request.Refererer := 'http://www.server.ru/...т.д.')
Потом уже делаем IdHTTP1.Post (...);

Посмотри, может в NMHTTP есть подобное ?...

ЗЫ: реферер - это URL страницы, с которой происходит запрос...
(Т.е. на какой странице нажали линк, ведущий к твоей странице)...



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


Бывалый
*


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

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



А подскажите как с помощью компонента TIdHTTP послать вот такой запрос
username=Zlo-2&[email protected]&new_password=123&password_confirm=123&icq=268310&aim=&msn=&yim=&website=zlo-raspisanie.narod.ru&location=&occupation=&interests=&signature=%D0%E0%E7%F0%E0%E1%EE%F2%EA%E0+%EF%F0%EE%E3%F0%E0%EC%ED%EE%E3%EE+%EE%E1%E5%F1%EF%E5%F7%E5%ED%E8%FF%21&viewemail=0&hideonline=0&notifyreply=0&notifypm=1&popup_pm=1&attachsig=1&allowbbcode=1&allowhtml=0&allowsmilies=1&language=russian&style=1&timezone=3&dateformat=D+M+d%2C+Y+g%3Ai+a&mode=register&agreed=true&coppa=0&submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC

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


Эксперт
****


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

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



пользуйся поиском:
http://forum.vingrad.ru/index.php?showtopic=31596


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


Бывалый
*


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

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



Хорошо,
допутим Процедура пост выглядит так
Код

Post(URL: string; const Source: TStrings; const AResponseContent: TStream);


так вот
Url - это адрес скрипта которому передаются данные, а что такое
Код

const Source: TStrings

и
Код

const AResponseContent: TStream

Скажите плиз!
PM MAIL   Вверх
_hunter
Дата 4.11.2004, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



IMHO в справке все понятно написанно:
Цитата
const Source: TStrings

Object containing the request data.

const AResponseContent: TStream

Destination for response data.



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


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


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

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



Source - данные запроса.
AResponseContent - ответ с сервера (напр., html-страница или файл).

При методе Post в запрос к серверу еще входят дополнительные данные (Source).
Это может быть какой-то файл (для закачки на сервер).
Но можно и параметры передавать (не всегда), например так:
Код
var s : TStringList;
begin
 s := TStringList.Create;
 s.Add('username=Zlo-2');
 s.Add('[email protected]');
 s.Add('new_password=123');
.. и т.д.
 Memo1.Text := IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php', s);
 s.Free;
end;

А в твоём случае надо сделать так:
Код

var s : TStringList;
begin
 s := TStringList.Create;
 Memo1.Text := IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php?username=Zlo-2&[email protected]&new_password=123...', s);
 s.Free;
end;

А если нет Post-данных, то проще так сделать:
Код
Memo1.Text := IdHTTP1.Get ('http://www.server.ru/phpBB2/profile.php?username=Zlo-2&[email protected]&new_password=123...');



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


Бывалый
*


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

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



_hunter
Блин еслиб в справке понял я б сюды неписал.
Ну что ты за человек.

p0s0l
Пасиба, очень подробненько, как раз для ламеров smile
PM MAIL   Вверх
Zlo
Дата 6.11.2004, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



p0s0l
Код

var s : TStringList;
begin
 s := TStringList.Create;
Memo1.Text := IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php?username=Zlo-2&[email protected]&new_password=123...', s);
 s.Free;
end;

А зачем там s?
В нее наверно надо чтото записать, если да то что?
PM MAIL   Вверх
_hunter
Дата 6.11.2004, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



вопрос интересный smile
судя по записи, имелся в виду метод Get
и тогда достаточно такого:
Memo1.Text := IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php?username=Zlo-2&[email protected]&new_password=123...');

Zlo, а что именно ты не понял в справке?


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


Бывалый
*


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

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



_hunter
В справке?
Да там все на ангилйском, а у меня с ним неочень smile


p0s0l
Вот сделал как ты написал
Код

var s : TStringList;
begin
 s := TStringList.Create;
Memo1.Text := IdHTTP1.Post ('http://www.server.ru/phpBB2/profile.php?username=Zlo-2&[email protected]&new_password=123...', s);
 s.Free;
end;

А дельфя говорит:
[Error] Unit1.pas(88): String literals may have at most 255 elements
Походу строка неможет быть больше 255 символов
И чего теперь делать?
PM MAIL   Вверх
_hunter
Дата 6.11.2004, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



именно поэтому создатели того сайта ( с которого форма ) решили использовать метод POST.
тебе остается делать то же самое


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


Бывалый
*


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

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



_hunter
Тоже самое это что?

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


Эксперт
****


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

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



использовать метод POST smile

немного модифицирую код p0s0l:
Код

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;



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


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


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

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



ЗЫ:
классификация хттп-ошибок:
Цитата
1ХХ - Информационное.Запрос принят, процесс продолжается.
2ХХ - Успех.Сообщение было успешно принято.
3ХХ - Перенаправление. Для завершения запроса необходимо произвести ряд действий.
4ХХ - Ошибка клиента. Запрос содержит синтаксическую ошибку и не может быть удовлетворен.
5ХХ - Ошибка сервера. Сервер не может выполнить внешний корректный запрос.


Цитата
HTTP Error 302 - Moved temporarily
Introduction


Your Web server thinks that your URL has been temporarily redirected to another URL. The client system is expected to immediately retry the alternate URL.

302 errors in the HTTP cycle

Any client (e.g. your Web browser or our CheckUpDown robot) goes through the following cycle when it communicates with your Web server:
* Obtain an IP address from the IP name of your site (your site URL without the leading 'http://'). This lookup (conversion of IP name to IP address) is provided by domain name servers (DNSs).
* Open an IP socket connection to that IP address.
* Write an HTTP data stream through that socket.
* Receive an HTTP data stream back from your Web server in response. This data stream contains status codes whose values are determined by the HTTP protocol. Parse this data stream for status codes and other useful information.

This error occurs in the final step above when the client receives an HTTP status code that it recognises as '302'.

Resolving 302 errors - general

The 302 response from your Web server should always include an alternative URL to which redirection should occur. If it does, a Web browser will immediately retry the alternative URL. So you never actually see a 302 error in a Web browser, unless perhaps you have a corrupt redirection chain e.g. URL A redirects to URL B which in turn redirects back to URL A. If your client is not a Web browser, it should behave in the same way as a Web browser i.e. immediately retry the alternative URL.

If the Web server does not return an alternative URL with the 302 response, then either the Web server sofware itself is defective or your Webmaster has not set up the URL redirection correctly.




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


Бывалый
*


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

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



p0s0l
Сылка которую я дал

http://www.nef.ru/phpBB2/profile.php?mode=...ter&agreed=true

это ссылка на форму которую нужно передать скрипту
передается форма методом пост
передается скрипту

http://www.nef.ru/phpBB2/profile.php

Кстати когда я разрешил редирект то ошибка пропала smile
Но чего-то всеравно неудается провести регистрацию smile
Я щас посмотрю может чего с параметрами напутал
PM MAIL   Вверх
Guest
Дата 9.11.2004, 19:33 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ну теперь другая проблема! smile
Пост посылается но некакой регитрации не происходит smile
Просто перекидывает на главную страницу и фсе
Чего за чертовщина?
  Вверх
p0s0l
Дата 9.11.2004, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



К сожалению, в PHP я не особо шарю, но, насколько я знаю, есть такое понятие "сессия". И в параметрах запроса нужно указывать ID текущей сессии. Если ты там пишешь ID какой-то старой сессии (например, списал запрос, который твой IE посылает серверу, и вручную потом этот запрос 1:1 посылаешь), то у тебя будет облом...
Т.е. по-нормальному, надо:
1) зайти, на страницу регистрации (сделать IdHTTP1.Get('http://www.nef.ru/phpBB2/profile.php?mode=register&agreed=true')
2) в результате получишь SID (его можно получить из html, который получаешь с помощью IdHTTP1.Get)
Можешь получить его так:
Ищешь подстроку: <form action="profile.php?
Далее после неё сразу же идёт типа такого:
sid=38ed0bbb49f900a798524b211055a1fb" method="post">
Отсюда SID получай...
3) Теперь уже посылай запрос с заполненной формой и с указанием в параметрах этого SID'а


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


Бывалый
*


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

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



Спасибо про ид я знаю! smile

Посмотри программу Mini-Browser очень классная вещь, скачать можно на web-hack.ru (это не реклама просто ссылку на файл не могу дать smile )
позволяет смотреть каким методом и куда посылыются данные

Вот эта прога и показывает мне
вот такой адрес
куды посылать данные
http://www.nef.ru/phpBB2/profile.php?sid=3...b4a13d7b99e574d
я пишу в проге так
Memo3.Lines.Text:=idHTTP1.Post('http://www.nef.ru/phpBB2/profile.php?sid='+sid,s);
sid - я его доэтого выкарчевываю из страници
и всеравно некакой регистрации не происходит smile((
просто перекидывает на главную страницу
вот немогу понять, че такое???
PM MAIL   Вверх
p0s0l
Дата 10.11.2004, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Вот так всё работает...
Код
procedure TForm1.Button1Click(Sender: TObject);
const
 tofind = '<form action="profile.php?sid=';

var
 s, sid, url : string;
 p : integer;
 sl : TStringList;
begin
 Memo1.Text := IdHTTP1.Get('http://www.nef.ru/phpBB2/profile.php?mode=register&agreed=true');

 s := AnsiLowerCase(Memo1.Text);
 Delete (s, 1, Pos(tofind, s) + Length(tofind)-1);
 sid := copy(s, 1, pos('"', s)-1);

 url := 'http://www.nef.ru/phpBB2/profile.php?sid=' + sid;
 sl := TStringList.Create;
 sl.Add('username=Posol5');
 sl.Add('[email protected]');
 sl.Add('new_password=abcdefg45');
 sl.Add('password_confirm=abcdefg45');
 sl.Add('icq=');
 sl.Add('aim=');
 sl.Add('msn=');
 sl.Add('yim=');
 sl.Add('website=');
 sl.Add('location=');
 sl.Add('occupation=');
 sl.Add('interests=');
 sl.Add('signature=Подпись');
 sl.Add('viewemail=0');
 sl.Add('hideonline=0');
 sl.Add('notifyreply=0');
 sl.Add('notifypm=1');
 sl.Add('popup_pm=1');
 sl.Add('attachsig=1');
 sl.Add('allowbbcode=1');
 sl.Add('allowhtml=0');
 sl.Add('allowsmilies=1');
 sl.Add('language=russian');
 sl.Add('style=subSilver');
 sl.Add('timezone=3');
 sl.Add('datefromat=D M d, Y g:i a');
 sl.Add('mode=register');
 sl.Add('agreed=true');
 sl.Add('coppa=0');
 sl.Add('submit=submit');
 Memo2.Text := IdHTTP1.Post(url, sl);
 sl.Free;
 memo2.Lines.savetofile('c:\111.html');
end;



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


Бывалый
*


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

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



p0s0l
Скланяю голову!
Респект тебе и все такое.
Я понял в чем ошибка, спасибо тебе p0s0l!!!!
PM MAIL   Вверх
p0s0l
Дата 10.11.2004, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Zlo @ 10.11.2004, 02:52)
Я понял в чем ошибка,
И в чём она была ? Мне ведь интересно smile



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


Эксперт
****


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

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



скорее всего в этом:
Цитата
sid - я его доэтого выкарчевываю из страници

и непонимании этого:
Цитата
И в параметрах запроса нужно указывать ID текущей сессии. Если ты там пишешь ID какой-то старой сессии (например, списал запрос, который твой IE посылает серверу, и вручную потом этот запрос 1:1 посылаешь), то у тебя будет облом...


Это сообщение отредактировал(а) _hunter - 10.11.2004, 15:15


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


Бывалый
*


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

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



_hunter

Цитата(_hunter @ 10.11.2004, 15:15)
скорее всего в этом:
Цитата
sid - я его доэтого выкарчевываю из страници

и непонимании этого:
Цитата
И в параметрах запроса нужно указывать ID текущей сессии. Если ты там пишешь ID какой-то старой сессии (например, списал запрос, который твой IE посылает серверу, и вручную потом этот запрос 1:1 посылаешь), то у тебя будет облом...


нет не в этом, про сид я знал ссамого начала как прогу начал делать!

недоглядел я с параметрами немнжко smile
и со значением параметров smile


p0s0l
вот так помоему писать нельзя
Код

sl.Add('signature=Подпись');


Потому как русские буквы должны преобразовываться в какойто там вид....smile
Вот в 6 дельфи для этого был компонент NMURL с закладки FastNet
может в 7 версии найдется замена?
PM MAIL   Вверх
p0s0l
Дата 10.11.2004, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Можно так:
Код
Uses IdURI;
...
sl.Add ('signature=' + TIdURI.ParamsEncode('Подпись'));





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


Эксперт
****


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

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



куда-то перекодируется...
ты приведи тлгда пример оригинальной подписи ( чтоб определить куда оно кодируется )
( есть подозрение что в Base64 -- тогда тот же Indy ( а именно IdBase64Encoder ) поможет )


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


Шустрый
*


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

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



Люди у меня такая пробелма не хочет форму посылать на сервер в интернете ошибку выдаёт smile
я вот хочу делать так
Код

........
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=0 to 20 do
begin
Memo1.Text :=   IdHTTP1.get ('http://oldchat.mail.ru/start.html?nick=test'+IntToStr(i)+'&color=#000000&textcolor=#000000&channel=13-18&tema=');
 sleep(3000);
end;
end;
.........

И мне ошибку выдаёт.
И в HTTPLOG никаких обращений
А если делаю для локального сервера, то всё работает
Вот например
Код

...........
Memo1.Text :=   IdHTTP1.get ('http://localhost/form.php?nick=test'+IntToStr(i)+'&color=#000000&textcolor=#000000&channel=13-18&tema=');
.......

В этом случае всё работает, прожек посылает 20 запросов серверу (видно по http логам)
Помогите разобраться. В чём проблема? smile

Это сообщение отредактировал(а) fuckerok - 16.11.2004, 07:16
--------------------
PM MAIL ICQ   Вверх
p0s0l
Дата 15.11.2004, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(fuckerok @ 15.11.2004, 08:54)
И мне ошибку выдаёт.
Какую ошибку ?
Цитата
'+i+'&
Надо вместо i писать IntToStr(i)...

PS: и у меня нормально твой запрос на oldchat.mail.ru отправился...
Правда написали, что доступ для моего IP закрыт из-за флуда smile



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


Шустрый
*


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

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



p0s0l
Сам не пойму была ошибка, запрсов не было smile
Наверно руки кривые smile
Единственное, что отлечалось у меня был другой провайдер, я тестировал на PTN. Сейчас у меня обычный провайдер и всё работает, никаких ошибок.
Цитата
Надо вместо i писать IntToStr(i)...

Это я от руки добросал, ошибка точно не из-за этого была, в коде у меня правильно написанно, да и не скомпилилось бы она так, как я вначале написал.
Цитата
Правда написали, что доступ для моего IP закрыт из-за флуда

Надеюсь ты не обидишся на меня за то что не сможешь какое-то время посидеть в детском чате smile , ну если тебе невтерпёж, то я могу написать как блоки обойти smile хотя ты и сам лудше меня знаешь как это делаеться smile
--------------------
PM MAIL ICQ   Вверх
Kondragor
Дата 21.11.2004, 03:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Поскажите плиз и мне тоже. Вот такой запрос - https://loginnet.passport.com/ppsecure/post...ared=&padding=x позволяет через браузер зайти сразу на страничку проверки почты. А как мне сделать это через IdHTTP1 ? тем более когда я обращаюсь к нему так
Код

procedure TForm1.Button1Click(Sender: TObject);  
var s : TStringList;
     buffer: TStream;
begin
 s := TStringList.Create;
 s.Add('login=my_mail');
 s.Add('domain=hotmail.com');
 s.Add('passwd=my_password');
 s.Add('sec=');
 s.Add('mspp_shared=');
 s.Add('padding=x');
 buffer:= TMemoryStream.Create();
 IdHTTP1.Post('https://loginnet.passport.com/ppsecure/post.srf?lc=1033&id=2&tw=20&fs=1&cbid=24325&da=passport.com&kpp=2&svc=mail&msppjph=1', s, buffer);
 buffer.Free();
 s.Free;
end;

выдается ошибка Intercept value is not valid. Делаю место https:// - http://. Пишет 403 Forbidden.
Подскажите плиз как можно таким образом залогиниться на почту.

p.s. сорри если ступил где, я с этими вещами первый раз работаю.

Это сообщение отредактировал(а) Kondragor - 21.11.2004, 03:17
PM MAIL   Вверх
_hunter
Дата 21.11.2004, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата
Assign an instance of TIdConnectionInterceptOpenSSL to the Intercept property to allow use of the HTTPS protocol. For the Windows platform, you must install the Indy OpenSSL support .DLL's available at http://www.intelicom.si  to enable Secure Socket Layer support.



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


Новичок



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

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



А нельзя ли объяснить что с этим делать? smile желательно на небольшом примере smile
PM MAIL   Вверх
Балбес
Дата 15.5.2005, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



скомпилировал этот пример
Цитата

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;


Сообщение отправляется, но вылазит ошибка
Цитата
Socket Error # 10061
Connection refused


Как ее обойти, скажите smile
PM MAIL   Вверх
Балбес
Дата 16.5.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



адрес сменил на свой, сообщение отправляется, но вылазит ошибка
PM MAIL   Вверх
_hunter
Дата 16.5.2005, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



а ты уверен что на этом www.server.ru ждут твоего сообщения?


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


Шустрый
*


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

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



_hunter
Цитата
адрес сменил на свой, сообщение отправляется, но вылазит ошибка


Цитата
Socket Error # 10061
Connection refused

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


Эксперт
****


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

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



ну тогда ты уверен что на "своем" адресе твое сообщение ждут?
+ поставь сниффер да глянь что/куда идет ( и идет ли )[s]
++ что значит сообщение отправляется? ( когда, в таком случае ошиька появляется? )


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


Новичок



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

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



Вот попробовал написать по вашему примеру авторизацию но выдаёт ошибку в коде 
Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
  tofind = '<!-- saved from url=(0081)http://192.168.10.49:8080/loginout.php?PHPSESSID=';
var
  s, sid, url : string;
  p : integer;
  sl : TStringList;
begin
  Memo1.Text := IdHTTP1.Get('http://192.168.10.49:8080/loginout.php');
  s := AnsiLowerCase(Memo1.Text);
  Delete (s, 1, Pos(tofind, s) + Length(tofind)-1);
  sid := copy(s, 1, pos('"', s)-1);
  url := 'http://192.168.10.49:8080/profile.php?action=submit&PHPSESSID=' + sid;
  sl := TStringList.Create;
    s := TStringList.Create;
  s.Add('action=login');
  s.Add('imembername='+(edit1.Text));
  s.Add('ipassword='+(edit2.Text));
  s.Add('submit=%C2%F5%EE%E4');
  Memo2.Text := IdHTTP1.Post(url, sl);
  sl.Free;
  memo2.Lines.savetofile('c:\111.html');
end;
end.

Вот Post запрос который выцепил снифер 
Код

POST http://192.168.10.49:8080/loginout.php HTTP/1.0
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ssf, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://192.168.10.49:8080/loginout.php
Accept-Language: ru
Content-Type: application/x-www-form-urlencoded
Proxy-Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; MyIE2; .NET CLR 1.1.4322)
Host: 192.168.10.49:8080
Content-Length: 63
Pragma: no-cache
Cookie: lastvisit=1162718715; PHPSESSID=92b6d91cc2def412f5ed64d78181c670

action=login&imembername=asdf&ipassword=adf&submit=%C2%F5%EE%E4



Форум ExBB
PM MAIL   Вверх
Matematik
Дата 5.11.2006, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Обрати внимаение на код
Код

var s:String;
  s.Add('action=login');
  s.Add('imembername='+(edit1.Text));
  s.Add('ipassword='+(edit2.Text));
  s.Add('submit=%C2%F5%EE%E4');
  Memo2.Text := IdHTTP1.Post(url, sl);


Это сообщение отредактировал(а) Matematik - 5.11.2006, 16:41
PM MAIL WWW ICQ   Вверх
Zlo
Дата 6.11.2006, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



lamos123456, переменную s объяви как TStringList
PM MAIL   Вверх
lamos123456
Дата 6.11.2006, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ok... спасибо!
PM MAIL   Вверх
malor
Дата 24.4.2007, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Мне нужно отправить пару строчек методом POST, а затем прочитать ответ от сервака:
Код
 Query := TStringList.Create;
Query.Append('VP=1');
Query.Append('AC='+Trim(mbNomer.Text));

ResultQuery := HTTP.Post('https://192.168.0.100/check/index.cgi', Query);
lbOtvet.Caption:= ResultQuery;
При запуске выдает - 
Цитата
Debugger Exception Notification

Progect Fel.exe raised exception class EIdOHandlerPropInvalid with message 'IOHandler value is not valid'.
Process stopped. Use step or Run to continue.

Пошаговая отладка показывает, что сбой происходит на строке ResultQuery := HTTP.Post('https://192.168.0.100/check/index.cgi', Query);
Что делать ?
Где логи смотреть ?..

Delphi 7, WinXP

Это сообщение отредактировал(а) malor - 24.4.2007, 12:10
PM MAIL   Вверх
aktuba
Дата 24.4.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


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

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



Цитата

Assign an instance of TIdConnectionInterceptOpenSSL to the Intercept property to allow use of the HTTPS protocol. For the Windows platform, you must install the Indy OpenSSL support .DLL's available at http://www.intelicom.si  to enable Secure Socket Layer support.


что означает, что для работы с HTTPS необходимы дополнительные DLL. Читаем справку + пользуемся поиском. Обсуждалось подобное очень много раз...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
Gwire
Дата 1.7.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Здравствуйте.
У меня утановлен Apache2.0. Файл по адресу http://localhost/index.php содержит следуюший код:
Код

<?php
    echo 'GET = ';
    var_dump($_GET);    // Вывод массива $_GET - то-есть все переменные переданные методом GET.
    echo 'POST = ';
    var_dump($_POST);   // Вывод массива $_POST - все переменные переданные методом POST.
?>


В Delphi6 пишу код:
Код

procedure TForm1.Button1Click(Sender: TObject);
var S: TStringList;
    A: TStringStream;
    P, G: String;
begin
    P:= 'var_post=value_post';      // Данные для передачи POST методом
    G:= 'var_get=value_get';        // Данные для передачи GET методом

    S:= TStringList.Create;         
    A:= TStringStream.Create('');

    S.Add( P );
    IdHTTP1.Post('http://localhost/?'+ G, S, A);

    Memo1.Lines.Text:= A.DataString;
end;


В результате в Memo1 заносятся следуюшие данные
Код

GET = array(1) {
  ["var_get"]=>
  string(9) "value_get"
}
POST = array(0) {
}


Как видно POST-данные небыли получены сервером для обработки.
Из этого следует что либо пременная "S" имеет не правильный формат строк (var_post=value_post), 
либо функция "IdHTTP1.Post()" работает некорректно, либо я затрудняюсь прокоментировать этот "баг".
smile
Хотелось-бы разобраться...


Это сообщение отредактировал(а) Gwire - 1.7.2008, 19:58
PM MAIL   Вверх
Gwire
Дата 1.7.2008, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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




Розобрался.
Код

IdHTTP1.Request.ContentType:= 'application/x-www-form-urlencoded';  // Нужно добавить.
IdHTTP1.Post('http://localhost/?'+ G, S, A);



Это сообщение отредактировал(а) Gwire - 1.7.2008, 20:00
PM MAIL   Вверх
Sharky
Дата 30.1.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте у меня такая проблема не могу сделать запрос на Https 
вот код страницы 

Код



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
<title>.: мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС уРБТЛ</title>
<link rel="stylesheet" type="text/css" href="/main_ru.css" />
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="/ie6.css" />
<![endif]-->
</head>
<body>

<h1 class="hide">мЙЮОЩК лБВЙОЕФ рПМШЪПЧБФЕМС</h1>
<form id="loginForm" action='/?lang=ru' method=post>
    <p>мПЗЙО&nbsp;<input type="text" name="login" /></p>
    <p>рБТПМШ&nbsp;<input type="password" name="password" /></p>

    <button type="submit"><img class="hide" src="/img_ru/lkAuthBtn.png" alt="чПКФЙ" /></button>
    <div id="loginShade"></div>
</form>

<div class="sparkenish" id="sparkenish">
    <div id="sparkenishBalloon">
        <img id="sparkenishBalloonLTC" src="/img_ru/lkSparkenishBalloonLTC.png" />
        <img id="sparkenishBalloonRTC" src="/img_ru/lkSparkenishBalloonRTC.png" />
        <img id="sparkenishBalloonLBC" src="/img_ru/lkSparkenishBalloonLBC.png" />
        <img id="sparkenishBalloonRBC" src="/img_ru/lkSparkenishBalloonRBC.png" />
        <img id="sparkenishBalloonArrow" src="/img_ru/lkSparkenishBalloonArrow.png" />
        <a id="sparkenishBalloonClose" href="#"><img src="/img_ru/lkSparkenishBalloonClose.png" alt="ЪБЛТЩФШ РПНПЭОЙЛБ" /></a>
                <p>
                              дПВТП РПЦБМПЧБФШ Ч МЙЮОЩК ЛБВЙОЕФ! <br>
                 </p>
        
    </div>
    <div id="sparkenishImgCont"><img id="sparkenishImg" src="/img_ru/lkSparkenish.png" alt="рПНПЭОЙЛ УРБТЛ" /></div>
</div>

<script language="javascript" src="/script.js"></script>

</body>
</html>

отсюда для себя я вынул след информацию:
    запрс будет сделан с помощью Post запроса 
    "text" name="login" поле логина
    "password" name="password" поле пароля 
    action='/?lang=ru


вот как я пытаюсь сделать запрос 

Код

procedure TForm1.Button1Click(Sender: TObject);
var
 tL: TStringList; 
 s: String;
  begin
   tL := TStringList.Create;
   tL.Add('text=E_103095');
   tL.Add('password=mcsarky');
   form1.IdHTTP1.Request.Referer:='https://stat.spark-com.ru/';
    try
     s := IdHTTP1.Post('https://stat.spark-com.ru/?lang=ru',tL);
    finally
     tL.Free;
    end;
  memo1.Lines.Add(s);
  end;

мой аутпост говорит что приложение запрашивает исходящее соединение LocalHost
далее моё приложение просто виснет 
несколько сообщений выше я видел что для Https нужны какие то Dll ки  но я не знаю откуда мне их взять в гугле смотрел . 
Не представляю что мне делать.помогите мне пожалуйста . 

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

Запрещено:

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

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

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

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

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


 




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


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

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