티스토리 뷰





WebAPI 말고, WebMethod 를 이용하는 경우,

리스폰스 되는 데이터를 GZIP 형식으로 압축해서 보내려고 하면 아래와같이 하면 된다.


Glabal.asax 페이지에 아래 코드 삽입하고

웹메소드에서 JSON 형식으로 데이터를 Response 하면 GZIP 형식으로 압축되어서 전송된다.


public void Init(HttpApplication context)

    {

        context.PreRequestHandlerExecute += new EventHandler(Application_PreRequestHandlerExecute);

    }


    void Application_PreRequestHandlerExecute(object sender, EventArgs e)

    {

        HttpApplication app = (HttpApplication)sender;

        string acceptEncoding = app.Request.Headers["Accept-Encoding"];


        if (string.IsNullOrEmpty(acceptEncoding))

        {

            return;

        } 


        if (acceptEncoding.IndexOf("gzip", StringComparison.InvariantCultureIgnoreCase) >= 0)

        {

            app.Response.Filter = new System.IO.Compression.GZipStream(app.Response.Filter, System.IO.Compression.CompressionMode.Compress);

            app.Response.AppendHeader("Content-Encoding", "gzip");

        }

        else if (acceptEncoding.IndexOf("deflate", StringComparison.InvariantCultureIgnoreCase) >= 0

           || acceptEncoding == "*")

        {

            app.Response.Filter = new System.IO.Compression.DeflateStream(app.Response.Filter, System.IO.Compression.CompressionMode.Compress);

            app.Response.AppendHeader("Content-Encoding", "deflate");

        }

    }




asmx, gzip, compression, clinet

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함