Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Вниз

Коннект к веб серверу   Найти похожие ветки 

 
Roman001   (2005-04-18 15:50) [0]

Подскажите плз. как мне зарегистрироваться на веб серваке, который куки использует, я так понял idHTTP надо юзать.
Качаю страничку с логином, подставляю данные, потом пост делаю,
а мне в ответ страничка с логином :(.
Может пример какой есть...


 
Чапаев ©   (2005-04-18 16:32) [1]

Код кидай... Если по словам судить, всё правильно делаешь...


 
Roman001   (2005-04-19 10:58) [2]

Сам сервак у меня на виртуальной мошине живет, логон идет с любого эксплорера нормально

unit Web;

interface

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

type
 TForm1 = class(TForm)
   ConnectBtn: TButton;
   Disconnect: TButton;
   HTTP: TIdHTTP;
   procedure ConnectBtnClick(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
Form1: TForm1;
St, Resp:TFileStream;

implementation

{$R *.dfm}

procedure TForm1.ConnectBtnClick(Sender: TObject);
begin
  //  загружаем предварительно скаченную по адресу
  //  http://test.ru/login.php
  //  страничку, где уже прописан логин и пароль
  St:=TFileStream.Create("Путь\StartPage.html",fmOpenRead);
  Resp:=TFileStream.Create("Путь\HomePage.html",fmCreate);
  HTTP.Post("http://test.ru/login.php",St,Resp);

  St.Free;
  Resp.Free;
 
  ShowMessage("ok");
end;


 
Чапаев ©   (2005-04-19 12:14) [3]

>  //  загружаем предварительно скаченную по адресу
>  //  http://test.ru/login.php
>  //  страничку, где уже прописан логин и пароль
Что-то мне это не нравится... В этом StartPage.html должно быть записано что-то вроде login=DirtyCheater&password=VeryComplexPassword. Что конкретно там должно быть прописано -- надо смотреть текст этой самой "предварительно скачанной странички".


 
DiamondShark ©   (2005-04-19 12:30) [4]

А куки за тебя дядя Вася будет сохранять?


 
Roman001   (2005-04-19 13:35) [5]

А как сохрянять то их...?

Вот сама страничка
я логин и пароль прописал в полях value, или не прав...?
я так понимаю, что
"login=DirtyCheater&password=VeryComplexPassword" :)
только для Get метода

Сам ПХП скрипт не я писал, чего там, сказать врядли смогу, но
без кук с броузера не залогиниться.
На HomePage.html вообще только приветствие

<html>
<body>

<table>
<tr>
<td valign=top align=center>

<form action=http://test.ru/login.php method=post>
<table border=0>
<tr><td>Логин:</td><td><input type=text name=login value="Roman"></td></tr>
<tr><td>Пароль:</td><td><input type=password name=pass value="test"></td></tr>
</table>
<input type=submit value="Войти">
</form>

</td>
</tr>
</table>

</body>
</html>


 
DiamondShark ©   (2005-04-19 15:33) [6]


> Roman001   (19.04.05 13:35) [5]
> А как сохрянять то их...?

Как угодно.

Сервер возвращает заголовок Set-Cookie, клиент должен его запомнить и посылать в запросах заголовок Cookie.

Подробности в RFC 2109


 
Roman001   (2005-04-21 07:03) [7]

То есть нужно обрабатывать его руками даже если свойство AllowCookies=true


 
Чапаев ©   (2005-04-21 11:44) [8]

> А куки за тебя дядя Вася будет сохранять?
А кто сказал, что там есть куки?

> я так понимаю, что [...] только для Get метода
Неправильно. В GET ты передаёшь что-то вроде

GET http://www.url.com?login=qwerty&pass=asdfgh HTTP/1.1\n
Host: www.url.com\n\n


В POST:

POST http://www.url.com HTTP/1.1\n
Host: www.url.com\n
Content-Length: 24\n
\n
login=qwerty&pass=asdfgh

Возможно, ещё надо добавить заголовок Content-Type: x-www-form-url-encoded, точно не помню...


 
DiamondShark ©   (2005-04-21 12:42) [9]


> Чапаев ©   (21.04.05 11:44) [8]
> А кто сказал, что там есть куки?

Аффтар сказал: "как мне зарегистрироваться на веб серваке, который куки использует"
Да и по логике вещей так получается. Если сервер требует логина, а HTTP протокол по определению stateless, то значит там должны быть куки.

А автору я бы настоятельно рекомендовал перед тем, как пользоваться навороченными компонентами, чётко уяснить, что там происходит "унутрях". Тем более, что ничего сложного там нет.


 
Чапаев ©   (2005-04-21 12:59) [10]

> Аффтар сказал: "как мне зарегистрироваться на веб серваке,
> который куки использует"
Точно. Афтар жжот.

> Если сервер требует логина, а HTTP протокол по определению
> stateless, то значит там должны быть куки.
Хм... Почему? :-| Зачем куки?

> Тем более, что ничего сложного там нет.
Эт смотря какие задачи ставить. ;-)


 
DiamondShark ©   (2005-04-21 13:11) [11]


> Хм... Почему? :-| Зачем куки?

Затем, что логин подразумевает наличие (логического) устойчивого соединения. А протокол HTTP по определению такового не обеспечивает.


> > Тем более, что ничего сложного там нет.
> Эт смотря какие задачи ставить. ;-)

Сложность протокола от задачи не зависит.


 
Чапаев ©   (2005-04-21 13:27) [12]

> Затем, что логин подразумевает наличие (логического)
> устойчивого соединения. А протокол HTTP по определению
> такового не обеспечивает.
Ну, я привык, что сервер в ответ на мой запрос с логином-паролем переадресует меня на страничку с неким уникальным идентификатором в адресе... Так что и без куков обходится.


 
Roman001   (2005-04-22 06:01) [13]

//ты передаёшь что-то вроде
:( передаешь..., там поток на входе и на выходе
в исходящий поток чтоль это пихать


POST http://www.url.com HTTP/1.1\n
Host: www.url.com\n
Content-Length: 24\n
\n
login=qwerty&pass=asdfgh


мож пример есть где ЭТО работает


 
Чапаев ©   (2005-04-22 11:08) [14]

> мож пример есть где ЭТО работает
Ну, в твоём случае это работать не будет, 100%... Это работало бы, если б ты использовал IdTcpClient, в примеру.

А вообще лучше всего RTFM RFC 2048.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2005.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.037 c
14-1121176011
Yuka
2005-07-12 17:46
2005.07.31
Какая библиотека?


14-1120565551
desam
2005-07-05 16:12
2005.07.31
Что дает сертификат?


3-1119601311
salexn
2005-06-24 12:21
2005.07.31
СУБД Cache и его использование вмести с Delphi


14-1120817921
DeepProg
2005-07-08 14:18
2005.07.31
Непонятная AV


3-1118918229
DelphiN!
2005-06-16 14:37
2005.07.31
SQL отнимающий содержимое одной строки от другой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский