我正在使用AFNetworking下載.gzip文件,當未壓縮時應返回JSON字符串。我通過瀏覽器發出了獲取請求,下載.gzip文件並解壓縮後,檢索到相應的JSON。AFNetworking無法序列化gzip響應(響應對象爲零)
我知道AFNetworking是建立在NSURLConnection上的,而且從我讀的NSURLConnection的gzip通脹中內置到它裏面。但是,我無法解壓並將服務器返回的gzip文件解析爲JSON。來自AFNetworking的響應對象仍然爲零。我的代碼如下:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
[manager.requestSerializer setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/plain", @"application/x-gzip", nil];
[manager GET:[NSString stringWithFormat:@"%@%@", BASE_URL, GET_CONTENTS_URL] parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
if(responseObject == nil){
NSLog(@"Response is still nil");
}
NSLog(@"JSON: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
我不確定這是行不通的。注意1:但是,如果我將響應序列化程序替換爲AFHTTPResponse序列化程序,則響應對象不爲零。但是,它屬於類_NSInlineData,它是一個無證類。
我有同樣的問題。如果我能找到解決方案,會發布任何內容。 –