Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

Запрос POST + Socket   Найти похожие ветки 

 
Beginer1 ©   (2003-08-22 10:44) [0]

Уважаемые мастера помогите
есть одна страницас авторизацй :

<FORM action="login.php" method="post" name="login" id="login">
<input name="login" type="text" id="login">
<input name="password" type="password" id="password">
<input type="submit" name="submit" value="Вход">
</FORM>

делаю такой запрос :

ClientSocket1.Socket.SendText(POST /login.php HTTP/1.1+#10);
ClientSocket1.Socket.SendText("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"+#10);
ClientSocket1.Socket.SendText("Accept-Language: ru"+#10);
ClientSocket1.Socket.SendText("Host: www.kakoitohost.ru"+#10);
ClientSocket1.Socket.SendText("Connection: Keep-Alive"+#13);
ClientSocket1.Socket.SendText("login=mylogin&password=MyPassw");
ClientSocket1.Socket.SendText (#10+#13+#10+#13);

ответ :

HTTP/1.1 400 Bad Request
Date: Fri, 22 Aug 2003 06:30:39 GMT
Server: Apache/1.3.27 (Unix) mod_ssl/2.8.12 OpenSSL/0.9.7a mod_fastcgi/2.2.12
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

Your browser sent a request that this server could not understand.
Request header field is missing colon separator.

login=mylogin&password=MyPassw


 
panov ©   (2003-08-22 18:47) [1]

Странный разделиель - #10.
Я почему-то думал что используется всегда #13#10


 
Beginer1 ©   (2003-08-22 20:52) [2]

>panov

всё равно что то не правильно.
теперь выдаёт ошибку авторизации


 
panov ©   (2003-08-22 21:36) [3]

Ну теперь нужно проверить на стороне сервера, какие данные он получает...


 
Beginer1 ©   (2003-08-22 22:16) [4]

>panov

и как это сделать???


 
panov ©   (2003-08-22 22:24) [5]

Несколько способов:
1. Использовать компонент TServerSocket, в нем смтреть поученную информацию.
2. Воспользоваться готовыми компонентами.
3. Установить сервер(напр. Apache), написать CGI и отлаживать совместно.

PS.
Кстати, необязательно посылать данные методом POST, можно использовать и GET.


 
Verg ©   (2003-08-23 14:48) [6]

Var St : string;
St:="login=mylogin&password=MyPassw";
ClientSocket1.Socket.SendText(POST /login.php HTTP/1.0+#13#10);
ClientSocket1.Socket.SendText("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*"+#13#10);
ClientSocket1.Socket.SendText("Accept-Language: ru"+#13#10);
ClientSocket1.Socket.SendText("Host: www.kakoitohost.ru"+#13#10);
ClientSocket1.Socket.SendText("Connection: Keep-Alive"+#13#10);
ClientSocket1.Socket.SendText("Content-Length: "+IntToStr(Length(St))+#13#10#13#10);
ClientSocket1.Socket.SendText(St);


 
Verg ©   (2003-08-23 14:51) [7]

Кстати для значений полей в ContenString (вдс ST) надо проделать HttpEncode. Т.е. заменить, если есть, спецсимполы на %cc (cc - код спецсимвола)


 
Verg ©   (2003-08-23 14:55) [8]

Да и вообще :))
Если сокет асинхронный, то...

function TCustomWinSocket.SendText(const s: string): Integer;

Понимаешь, он может вернуть WSAEWOULDBLOCK.
В этом случае надо отложить дальнейшую передачу до возникновения FD_WRITE...


 
Anatoly Podgoretsky ©   (2003-08-23 14:55) [9]

А вот это еще более странно
ClientSocket1.Socket.SendText("Host: www.kakoitohost.ru"+#10);
ClientSocket1.Socket.SendText("Connection: Keep-Alive"+#13);
То в лес, то в поле


 
Beginer1 ©   (2003-08-29 05:28) [10]

>Verg ©
Да и вообще :))
Если сокет асинхронный, то...

???


 
Verg ©   (2003-08-30 08:38) [11]


> Beginer1 ©


Еще раз говорю:


> function TCustomWinSocket.SendText(const s: string): Integer;


Как думаешь, зачем она function ?
Очевидно, затем, что она может возвращять результаты своей работы типа Integer. Анализировать эти результаты кто будет? Пушкин?



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

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
3-74091
evgeniy1980
2003-09-30 10:33
2003.10.23
Combobox


1-74128
Igor Mish
2003-10-11 04:40
2003.10.23
Про пароль


11-74101
Kladov
2003-02-09 07:48
2003.10.23
Странности ME


14-74424
ИМХО
2003-10-05 10:02
2003.10.23
Кто помнит песню и исполнителя?


1-74119
Yahidze
2003-10-11 16:54
2003.10.23
Преобразование Фурье