Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > synapse работа c запросами


Автор: sono 1.3.2010, 00:02
все наелся я этого инди(((( ну не получается у меня с ним работать и особенно с https
смотрю в сторону synapse вроди https страници загружает, заголовки тоже но вот столкнулся с проблемой а именно отправки запросов.
Вот например как мне отправить средствами synapse  запрос вида:

(данный запрос проснифил в firefox приложением httpfox при переходе на url=https://addons.mozilla.org/ru/firefox/addon/1027 )

GET /ru/firefox/addon/1027 HTTP/1.1
Host    addons.mozilla.org
User-Agent    Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
Accept    text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language    ru,en-us;q=0.7,en;q=0.3
Accept-Encoding    gzip,deflate
Accept-Charset    windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive    300
Connection    keep-alive
Referer    http://www.google.com.ua/search?hl=ru&client=firefox-a&hs=UCB&rls=org.mozilla%3Aru%3Aofficial&q=firefox+https&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&meta=&aq=f&oq=
Cookie    __utma=164683759.520553289.1267389783.1267389783.1267389783.1; __utmb=164683759; __utmc=164683759; __utmz=164683759.1267389783.1.1.utmccn=(organic)|utmcsr=google|utmctr=firefox+https|utmcmd=organic; s_cc=true; s_vsn_mozillaaddonsorg_1=5142673725485; s_sq=%5B%5BB%5D%5D; __utmv=164683759.Loggedout
If-Modified-Since    Wed, 30 Dec 2009 20:42:57 GMT
Cache-Control    max-age=0

и при этом получить заголовок и содержание запрошеной страници?
может кто-нить сталкивался с подобной задачей?

Автор: D1myan 24.5.2010, 14:58
В Memo1 получаем содержимое страницы
В Memo2 получаем заголовки

Код

uses httpsend, ssl_openssl;
...
procedure ....
var
 stream: TStringStream;
 httpsend: THTTPSend;
......
begin
 stream:=TStringStream.Create('');
 stream.WriteString('ЗДЕСЬ ПИШЕМ POST ДАННЫЕ');
 httpsend:=THTTPSend.Create;
 httpsend.MimeType:='application/x-www-form-urlencoded';
 httpsend.Document.LoadFromStream(stream);
 if httpsend.HTTPMethod('post','https://addons.mozilla.org/ru/firefox/addon/1027')then
  if httpsend.ResultCode=302 then begin
          Memo2.Lines.Add('Отправка запроса. Ответ сервера');
          Memo2.Lines.Add('-----Cokies-----');
          Memo2.Lines.add(httpsend.Cookies.Text);
          Memo2.Lines.Add('-----Headers-----');
          Memo2.Lines.add(httpsend.Headers.Text);
      end else showmessage('Не получилось!');
.....
end;


Пример GET запроса

Код

         httpsend.HTTPMethod('get','https://addons.mozilla.org/ru/firefox/addon/1027');
         httpsend.Document.SaveToStream(stream);
         Memo1.Lines.Add(Utf8ToAnsi(stream.DataString));
         Memo2.Lines.Add('Отправка запроса. Ответ сервера');
         Memo2.Lines.Add('-----Cokies-----');
         Memo2.Lines.add(httpsend.Cookies.Text);
         Memo2.Lines.Add('-----Headers-----');
         Memo2.Lines.add(httpsend.Headers.Text);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)