[DELPHI] Chunked-декодирование HTTP ответа

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by GlooK, 29 Sep 2009.

  1. GlooK

    GlooK Elder - Старейшина

    Joined:
    20 Apr 2007
    Messages:
    172
    Likes Received:
    53
    Reputations:
    10
    Необходимо реализовать chunked декодирование ответа от сервера.

    Code:
    HTTP/1.1 200 OK
    Server: nginx/0.7.59
    Date: Tue, 29 Sep 2009 17:52:03 GMT
    Content-Type: text/html; charset=windows-1251
    Transfer-Encoding: chunked
    Connection: keep-alive
    X-Powered-By: PHP/5.2.6-1+lenny3
    Pragma: no-cache
    Cache-control: private, must-revalidate
    
    3ee4
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    ...
    
    Спецификация примерно такая:

    Code:
    HTTP/1.1 200 OK
    ...
    Transfer-Encoding: chunked
    ...
    <CRLF>
    <SIZE-CHUNKED-DATA-IN-HEX>
    <CRLF>
    <CHUNKED-DATA>
    <CRLF>
    <SIZE-CHUNKED-DATA-IN-HEX>
    <CRLF>
    <CHUNKED-DATA>
    <CRLF>
    
    <SIZE-CHUNKED-DATA-IN-HEX> - это размер порции данных, в нашем случае 3ee4 (HEX) = 16100 (DEC)
    <CHUNKED-DATA> - порция данных

    P.S. Также важно определить, требуется ли кодирование. Думаю, если искать в тексте "Transfer-Encoding: chunked", то любая страница содержащая такой текст будет считаться кодированой.

    Помогите, плиз, а то уже голова не варит :(