如何gzip NSURLConnection请求?

显然, NSURLConnection自动解码gzip压缩响应 。 但是,它可以gzip编码其请求吗? 如果是这样,怎么样? 或者,它是否也自动执行此操作?

HTTP请求主体不能在协议级别进行gzip压缩,因为客户端无法知道服务器是否支持; 它适用于服务器响应,因为客户端在请求中指示是否可以接受gzped响应正文。 (未来可能会有类似Expect: 100-continue作品,但这不是我们今天面临的情况)。

在应用程序级别,您当然可以gzip请求正文。 但那将超出NSURLConnection的范围。

我通常都是在ASIHTTPRequests上使用NSURLRequests,但ASI确实处理了这种情况。 HTTP请求压缩不是您可以安全使用的东西。 您无法检测服务器是否在路由上正确处理此问题。 即使你让Apache设置正确处理它,它也会在不同模块上发出请求时失败,因为它们可能无法正确处理它。

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