我在我的项目中使用AFNetworking库。最近我听说过在NSURLConnection类中defalut给出的gzip数据压缩,并减少了大型json响应的时间和加载时间,因此AFNetworking可能具有该功能,因为它在NSURLConnection之上工作。如何在AFNetworking API调用中使用gzip解压缩?
但我不知道如何通过AFNetworking从php API获取gzip压缩json响应。
当Json响应文件大小超过100kb +时,我需要这种技术。
我在我的项目中使用AFNetworking库。最近我听说过在NSURLConnection类中defalut给出的gzip数据压缩,并减少了大型json响应的时间和加载时间,因此AFNetworking可能具有该功能,因为它在NSURLConnection之上工作。如何在AFNetworking API调用中使用gzip解压缩?
但我不知道如何通过AFNetworking从php API获取gzip压缩json响应。
当Json响应文件大小超过100kb +时,我需要这种技术。
如果服务器支持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
。
如果您在AFNetworking中使用基于NSURLSession
的API,它将自动包含为here。因此你不需要做任何事情。
请注意,您可能未在应用程序日志中看到请求的标头值,但如果服务器支持gzip,您可以检查标头以确认此行为。