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

Вниз

Запрос 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.012 c
3-74021
Lika
2003-10-03 14:38
2003.10.23
Может кто поможет разобраться с XLReport?


9-73957
Palladin
2003-04-19 11:42
2003.10.23
аналитическая геометрия и линейная алгебра


14-74433
Думкин
2003-10-05 06:25
2003.10.23
С Днем рождения! 5 октября.


1-74226
Tommy
2003-10-08 15:06
2003.10.23
nado 4tobi v Gride pravilno visve4ivalis gre4ekie bukvi...


3-74086
Zhouck
2003-10-01 10:45
2003.10.23
Какое событие срабатывает в DBGrid при переходе на другую запись





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский