I am using asmx web service and calling it through ajax as
$.ajax({ url: 'xxxxxxx.asmx/Getxxxxxxxx', method: 'post', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (data) { $(data.d).each(function (index, category) {
My service returns a list of objects. I was reading on how to compress the response of a web service and it seems to me that to do this I need to override the GetWebRequest method and use Gzip/Deflate (in a class derived from web service proxy class).
The next step would be to use an instance of this class (which overrides GetWebRequest) and use this in application.
Since, I am using ajax call, I am not sure how to use this instance of class which overrides GetWebRequest method.
Thank you.
Best Answer
In order to send the compressed response to client, from your web-service, you must be using content-encoding field and set its value to compress.
But, before that you must check the value of "Accept-Encoding" header send by client. The possible values for this header is
The above mentioned guidelines are applicable, irrespective of whatever language/technology you are using.
For more information of HTTP protocol headers, refer to
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html
EDIT
"Accept-Encoding" request header must be set in your ajax request. You can do that, by setting "headers" in your ajax request as follow :