Új hozzászólás Aktív témák

  • dqdb

    nagyúr

    válasz Keem1 #9633 üzenetére

    Kiolvasod az első két byte-ot a streamről. Ha az 1f 8b, akkor gzip lesz a formátum.

    Mivel azt a két byte-ot egyszerűen nem tudod visszatenni a stream elejére, ezért ha memóriába belefér a tartalom, akkor létrehozol egy MemoryStream-et, az elejére beírod a két byte-ot, a végére a stream többi tartalmát, és ezt az objektumot adod tovább a GZipStream példánynak vagy a StreamReader-nek.

    Ha szép megoldást szeretnél vagy a memóriafoglalás is számít, akkor egy olyan Stream implementációra lesz szükséged, ami alapvetően proxyként működik a paraméterként kapott streamre, csak éppen visszateszi az elejére azt a két byte-ot.

    A HTTP header felejtős, az minden esetben gzipet ad vissza.
    Bár a fenti taknyolás működik, de ezt igazából a szerveren kellene javítani, hogy helyesen adja vissza a Content-Encoding mezőt.

    Küldesz amúgy Accept-Encoding-ot a kérésben? Ha nem, akkor ez még nagyobb probléma a szerveren, ha igen, akkor gyorsan szedd ki, és lehet, hogy megúszod a teljes fejlesztést.

Új hozzászólás Aktív témák