Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2007, 22:36   #1
xPrizrak
 
Регистрация: 16.10.2007
Сообщений: 4
По умолчанию Формирование НТТР-запроса в одну строку

Подскаже, можноли в Delphi запрос HTTP сформировать в строку (возможно через специальный разделитель) и затем целиком отправить. Какую и как нужно использовать компаненту. И как принять ответ.
Запрос типа такого к примеру:

GET / 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
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: www.rambler.ru
Connection: Keep-Alive
Если нет то подскажите как лучше осуществить такой запрос. TCPclient, idTCPclient, idHTTP или чем то ещё.
Зарание, большое спасибо.






Последний раз редактировалось xPrizrak; 16.10.2007 в 22:41.
xPrizrak вне форума Ответить с цитированием
Старый 16.10.2007, 23:34   #2
SkyM@n
Laravel/Vue expert
Старожил Подтвердите свой е-майл
 
Аватар для SkyM@n
 
Регистрация: 08.08.2007
Сообщений: 2,832
По умолчанию

А что мешает заносить строка1 + RN +строка2 + RN + строка3 + RN + сторока4 ........
где RN = "\r\n" - символ перевода строки и возврата каретки (Ентер). Не забудь в конце два раза вставить эти разделители.
SkyM@n вне форума Ответить с цитированием
Старый 17.10.2007, 09:04   #3
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Idhttp метод post постишь Tstringlist
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 17.10.2007, 09:42   #4
xPrizrak
 
Регистрация: 16.10.2007
Сообщений: 4
По умолчанию

Не выходить. Нельзя пример привести, просто добавление строк и отправка в post.

Последний раз редактировалось xPrizrak; 17.10.2007 в 10:32.
xPrizrak вне форума Ответить с цитированием
Старый 17.10.2007, 10:56   #5
Maslan
Форумчанин
 
Регистрация: 15.10.2007
Сообщений: 147
По умолчанию

Цитата:
Var S:TStrings;
Query:Pchar;
R:String;
Begin
R:=#13#10;
S:=TStringList.Create;
S.Clear;
S.Add('GET / HTTP/1.1');
S.Add('Accept: image/gif, image/x-xbitmap image/jpeg, image/pjpeg, application/x- shockwave-flash, application/vnd.ms-excel, application/msword, */*');
S.Add('Accept-Language: ru');
S.Add('Accept-Encoding: gzip, deflate');
S.Add('User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)');
S.Add('Host: www.rambler.ru');
S.Add('Connection: Keep-Alive');
Query:=PChar(S.Strings[0]+R+S.Strings[1]+R+S.Strings[2]+R+S.Strings[3]+R+S.Strings[4]+R+S.Strings[5]+R+S.Strings[6]);
DoWhatYouWant(Query);
end;
DoWhatYouWant - cсобственно, отправка, как тебе нужно оформляй.
Maslan вне форума Ответить с цитированием
Старый 17.10.2007, 11:07   #6
xPrizrak
 
Регистрация: 16.10.2007
Сообщений: 4
По умолчанию

Спасибо огромное, пока ждал ответа сам вот что нашел.

procedure TForm1.Button2Click(Sender: TObject);
var
LoginInfo: TStrings;
Response: TStringStream;
begin
LoginInfo := TStringList.Create;
Response := TStringStream.Create('');
LoginInfo.Clear;
LoginInfo.Add('GET / HTTP/1.1');
//Весь запрос.
IdHTTP1.Post('http://127.0.0.1',LoginInfo,Response);
showmessage(Response.DataString);
Response.Free;
LoginInfo.Free;
end;

HTML текст документа, я по запросу получаю.
Как строки сформировать я понял, но вот что мне с ней делать? куда отправлять.

Зачем если при формировании строки S.Add('Host: www.rambler.ru'); мы узываем хост, вот в этом примере пишем опять куда отправлять. IdHTTP1.Post('http://127.0.0.1',LoginInfo,Response);

Как отправить чистый запрос (тот что был сформирован в примере выше) без добавлени каких либо параметров и указания хостов.

И как получить не только html текст а ответ в таком виде

HTTP/1.1 200 OK
Date: Wed, 17 Oct 2007 06:54:52 GMT
Server: Apache/2.0.55 (Win32) PHP/5.1.2
X-Powered-By: PHP/5.1.2
Content-Length: 70
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html

Последний раз редактировалось xPrizrak; 17.10.2007 в 11:13.
xPrizrak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование запроса BlackOmen JavaScript, Ajax 6 15.06.2008 12:37
Формирование запроса с параметром student_63 БД в Delphi 7 13.05.2008 17:40
Запись в одну строку Terran Общие вопросы Delphi 2 08.05.2008 23:35