Конференция "Сети" » http-запрос(idHTTP) [D7, WinXP]
 
  • Igor2010 (29.03.09 20:44) [0]
    Всем привет!!!

    Делаю post авторизуюсь нормально. Теперь после аdторизации мне нужно перейти по другому адресу, делаю это сразу GET-ом, вижу что в снифере все ок (получено то что надо), а сам метод Get возвращает мне типа этого: |‹|

    Вот строка Memo1.Text:=Form1.IdHTTP1.Get('http://');
    Если использую её без авторизации то все ок.

    Подскажите неучу в чем причина?
  • DVM © (29.03.09 21:09) [1]
    чего тебе надобно то?
  • Igor2010 (29.03.09 21:13) [2]

    > DVM ©   (29.03.09 21:09) [1]
    >
    > чего тебе надобно то?


    В мемо какая то бяка возвращается, а если без пост-запроса с авторизацией, то результат запроса нормальный
  • Igor2010 (29.03.09 21:24) [3]
    Мож так попонятней.

    1 запрос POST (авторизуюсь)
    2 запрос GET (двигаюсь вглубь сайта)
    тепер надо распарсить строку из результата 2-го запроса и сделать 3-ий GET запрос, но не могу это сделать потому что результатом 2-го запроса является бяка (|<|) возвращенное в Memo.Text

    Кто нить сталкивался с этим?
  • DVM © (29.03.09 22:25) [4]

    > 1 запрос POST (авторизуюсь)

    Ты уверен, что авторизация проходит нормально и как ты это выяснил?
    Вообще то принято после самопальной авторизации делать редирект на нужную страницу - этот редирект проискходит (он будет происходить только в том случае, если у TIDHTTP выставлено соответствующее свойство).


    > 2 запрос GET (двигаюсь вглубь сайта)

    Как связаны первый и второй запросы в твоем случае? Как сервер понимает, что тот кто авторизовался в первом запросе, тот же и выполняет второй запрос? Очевидно это делается скорее всего через куки, они включены в TIDHTTP?
  • Igor2010 (29.03.09 22:33) [5]

    > делать редирект на нужную страницу

    делаю так
    Form1.IdHTTP1.HandleRedirects:=True;   //îáõîä 302 îøèáêè


    > Очевидно это делается скорее всего через куки, они включены
    > в TIDHTTP?


    просто связал куки менеджер с шттп(св-во CookieManager), а как правильно робить с куками?
  • Igor2010 (29.03.09 22:36) [6]

    > Ты уверен, что авторизация проходит нормально и как ты это
    > выяснил?

    да уверен
    вот так выясняю

       Form1.Memo1.Lines.SaveToFile('1.htm');
       Spath:=ExtractFilePath(Application.ExeName)+'1.htm';
       Form1.webbrowser1.Offline:=true;
       Form1.webbrowser1.Navigate(Spath);
  • Igor2010 (29.03.09 22:42) [7]
    А вот IE Inspector показывает возвращение после 1 -го и 2-го запроса с кодом 200 OK, а почему в МЕМО после 2-го запроса кракозябра не пойму :(
  • DVM © (29.03.09 23:44) [8]

    > А вот IE Inspector показывает возвращение после 1 -го и
    > 2-го запроса с кодом 200 OK, а почему в МЕМО после 2-го
    > запроса кракозябра не пойму :(

    Ты покажи заголовок ответа сервера твоей программе полностью.
  • Igor2010 (29.03.09 23:59) [9]

    > Ты покажи заголовок ответа


    (Status-Line):HTTP/1.1 200 OK
    Server:nginx/0.7.38
    Date:Sun, 29 Mar 2009 19:32:35 GMT
    Content-Type:text/html; charset=windows-1251
    Transfer-Encoding:chunked
    Connection:close
    Set-Cookie:posts_subscriptions=ssswwwe@zero.ru,; path=/; expires=Sun, 29 Mar 2009 20:02:35 GMT; domain=.zero.ru
    Pragma:no-cache, no-cache
    Cache-Control:no-cache, no-store, private
    Expires:Sun, 29 Mar 2009 19:32:35 GMT
    Frontend-key:
    P3P:policyref="/w3c/p3p.xml", CP="NON CUR ADM DEV PSA PSD OUR IND UNI NAV INT STA"
    Set-Cookie:Mpop=1238355146:537e065a06615e4719050219091d001b0300004f6a5d5e465e0504090 31d01010318424a4a4f4647541658565c5d1a454c:ssswwwe@zero.ru:; path=/; expires=Sat, 27 Jun 2009 19:32:26 GMT; domain=.zero.ru
    Set-Cookie:mrcu=7D9B49CFCCCF05CA04E70100007F; path=/; expires=Fri, 18 Jul 2036 13:20:00 GMT; domain=.zero.ru
    Content-Encoding:gzip
  • DVM © (30.03.09 00:25) [10]

    > Content-Encoding:gzip

    может в этом дело?
  • Igor2010 (30.03.09 07:13) [11]

    > может в этом дело?


    не знаю, мозилка тоже самое показывает, а чо со сжатием не так? Даю ему Accept-Encoding:gzip,deflate
    а он мне сответсв Content-Encoding:gzip
  • Индеец (30.03.09 08:31) [12]
    Подключи к Idhttp idcompressor<чего-то там> с вкладки Indy Misc.
  • Igor2010 (30.03.09 20:32) [13]

    > Подключи к Idhttp idcompressor<чего-то там> с вкладки Indy
    > Misc.


    Нее не то, чо ещё можно сделать по теме?
  • DVM © (30.03.09 22:45) [14]

    > Нее не то, чо ещё можно сделать по теме?

    Декодировать контент надо, что же еще. Он сжат очевидно и сжатым ты его в Memo ну никак не отобразишь.
  • Медвежонок Пятачок © (31.03.09 10:54) [15]
    а зачем говорить серверув заголовке запроса, что ты умеешь распаковывать гзип, если ты его не умеешь распаковывать?
  • Igor2010 (31.03.09 16:38) [16]

    > если ты его не умеешь распаковывать?
    >


    так научите!? плиз, горю я синем пламенем....:-)
  • Медвежонок Пятачок © (31.03.09 17:59) [17]
    убери из заголовка своего запроса упоминание о гзипе.
  • Igor2010 (31.03.09 19:48) [18]

    > убери из заголовка своего запроса упоминание о гзипе.


    млин.....спасибо Вам и всем помогавшим....в яблочко
  • Дмитрий (17.04.11 23:09) [19]
    Здравствуйте, точна такая же проблема и убирание из заголовков упоминание про gzip и deflate не помогло. Использую Delphi 7  - может из-за старого indy?
 
Конференция "Сети" » http-запрос(idHTTP) [D7, WinXP]
Есть новые Нет новых   [134437   +27][b:0][p:0.001]