How to gzip an NSURLConnection request?

2019-06-22 12:20发布

Apparently, NSURLConnection automatically decodes gzipped responses. But, can it gzip encode its requests? If so, how? Or, does it do this automatically too?

2条回答
萌系小妹纸
2楼-- · 2019-06-22 12:44

An HTTP request body cannot be gzipped at the protocol level, as there is no way for the client to know whether the server supports that or not; it works for the server response because the client indicates in the request whether a gzipped response body can be accepted. (It could be done in the future something like how Expect: 100-continue works, but that's not the situation we're faced with today).

At the application level, you certainly could gzip the request body. But that would be outside the realm of NSURLConnection.

查看更多
我想做一个坏孩纸
3楼-- · 2019-06-22 12:57

I'm usually all for using NSURLRequests over ASIHTTPRequests, but ASI does handle this case. HTTP request compression isn't something you can use all the time safely. You can't detect whether a server will handle this correctly on a route. Even if you get Apache setup to handle this correctly it will fail when making requests on different modules since they might not handle it correctly.

http://allseeing-i.com/ASIHTTPRequest/How-to-use#using_gzip_to_compress_request_bodies

查看更多
登录 后发表回答