| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Разобрать заголовок HTTP |
| Автор: LordGuest 30.1.2006, 10:16 |
| 1. Есть некоторый заголовок POST /addurl.cgi HTTP/1.1 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */* Accept-Language: ru Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: localhost:25686 Content-Length: 157 Connection: Keep-Alive Cache-Control: no-cache title=Page+title¬e=Page+Description&class=Internet&url=http://testing.ru&fname=First+Name&lname=Last+Name&email=email@mail.ru&country=United+ Kingdom Необходимо заполнить структуру на основе этого заголовка следующим образом: Info.Method = 'POST' Info.Path = '/addurl.cgi' Info.HTTP_VER = 'HTTP/1.1' Info.Accept = 'image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/msword, */*' Info.Accept_Language = 'ru' Info.Content_Type = 'application/x-www-form-urlencoded' Info.User_Agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)' Info.Host = 'localhost:25686' Info.Connetion_Length = '157' Info.Connection = 'Keep-Alive' Info.Cache_Control = 'no-cache' Info.Title = 'Page+title' Info.Note = 'Page+Description' Info.Class = 'Internet' Info.Url = 'http://testing.ru' Info.FName = 'First+Name' ... Info.Country = 'United+Kingdom' 2. И еще. Есть ли какие-нибудь функции для кодирования и декодирования строки параметров? Ведь русские и некоторые символы невозможно передавать методом GET в строке без кодирования в шестнадцатиричный формат? |
| Автор: LordGuest 31.1.2006, 06:30 |
| Неужели ни у кого нет хотя бы примера таких функций? Наверняка и Borland что то может предложить, правда раскопать их коды тяжко очень |
| Автор: Snowy 31.1.2006, 10:28 | ||
| Нет конечно. Все только ручками. Можно упростить задачу. Записать ответ в TStringList. установить у него NameValueSeparator = ':'; после этого можешь считывать параметры по имени:
и т.д. А более детальное разделение только руками. |
| Автор: LordGuest 1.2.2006, 15:45 |
| Спасибо конечно. Но необходимо сделать только на API без подключения модулей. В проекте может быть только модуль Windows и WinSock. А как все таки кодировать запрос GET/POST? |
| Автор: Snowy 1.2.2006, 17:00 |
| Тогда только ручками построчно, анализируя каждую строку ответа. |
| Автор: LordGuest 8.2.2006, 12:14 |
| Блин, хоть убейте... не могу понять как это делается... может быть кто-нибудь код настрочит? Как строку параметров преобразовать в принятый шестнадцатиричный формат и обратно раскодировать его? |
| Автор: Snowy 8.2.2006, 12:36 | ||
Также есть готовые кодилки/декодилки в Indy |
| Автор: Демо 8.2.2006, 12:55 | ||||||
Из какого-то совсем древнего проекта:
|