2014-09-13 59 views
4

我在我的项目中使用AFNetworking库。最近我听说过在NSURLConnection类中defalut给出的gzip数据压缩,并减少了大型json响应的时间和加载时间,因此AFNetworking可能具有该功能,因为它在NSURLConnection之上工作。如何在AFNetworking API调用中使用gzip解压缩?

但我不知道如何通过AFNetworking从php API获取gzip压缩json响应。

当Json响应文件大小超过100kb +时,我需要这种技术。

回答

4

如果服务器支持gzip可能要求客户问服务器启用gzip回应。要求服务器使用gzip添加特定"Accept-Encoding"标头您的要求。你可以这样做,例如,用这个代码行:

// Get one that serializes your requests, 
// for example from your AFHTTPSessionManager subclass 
AFHTTPRequestSerializer <AFURLRequestSerialization> *requestSerializer = ... 
[requestSerializer setValue:@"gzip, identity" forHTTPHeaderField:@"Accept-Encoding"]; 

"Accept-Encoding"标题必须包含gzip同时,也许不需要identity

0

如果您在AFNetworking中使用基于NSURLSession的API,它将自动包含为here。因此你不需要做任何事情。

请注意,您可能未在应用程序日志中看到请求的标头值,但如果服务器支持gzip,您可以检查标头以确认此行为。