Главная страница
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.016 c
14-74419
VID
2003-10-05 22:27
2003.10.23
HTTP прокси сервера не дают никакой разницы...


3-73986
AndCot
2003-10-01 09:56
2003.10.23
Индексы CDX в TTable


3-73977
Alexadre
2003-10-05 23:31
2003.10.23
DBGrid-после удаления записи


1-74127
Fast
2003-10-11 12:42
2003.10.23
Синхронизация


14-74445
Карлсон
2003-10-03 15:12
2003.10.23
защита avi от копирования с носителя