распаковать загруженный файл через asihttprequest

Я хочу знать, можем ли мы с помощью ASIHTTPRequest распаковать загруженный файл .zip или только распаковать сжатый файл .gzip.

Пожалуйста, дайте мне знать, потому что, если ASIHTTPRequest не может распаковать сжатый файл .zip, мне придется использовать сторонние API, такие как ZipArchive, для распаковки загруженного файла.

Спасибо


person Aisha    schedule 12.07.2012    source источник


Ответы (1)


Почему бы не использовать сжатую gzip HTTP-связь, которая будет прозрачно декодирована для вас ASI (и практически всеми другими инфраструктурами доступа HTTP).

ASIHTTP поддерживает декомпрессию, например -

- (IBAction)grabURL:(id)sender
{
    NSURL *url              = [NSURL URLWithString:@"http://allseeing-i.com"];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];

    // YES is the default, you can turn off gzip compression by setting this to NO
    [request setAllowCompressedResponse:YES];

    [request startSynchronous];
    BOOL *dataWasCompressed    = [request isResponseCompressed]; // Was the response gzip compressed?
    NSData *compressedResponse = [request rawResponseData]; // Compressed data
    NSData *uncompressedData   = [request responseData]; // Uncompressed data
    NSString *response         = [request responseString]; // Uncompressed data as a string
}

ОБНОВЛЕНИЕ: если asi не поддерживает распаковку zip-файлов, я использовал ZipArchive с успехом в прошлом.

Он довольно легкий и простой в использовании, поддерживает защиту паролем, несколько файлов внутри ZIP, а также сжатие и распаковку. поэтому вам нужно сначала получить zip-файл через asi, а затем распаковать с помощью ziparchive.

Основное использование:

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"ZipFileName" ofType:@"zip"];
ZipArchive *zipArchive = [[ZipArchive alloc] init];
[zipArchive UnzipOpenFile:filepath Password:@"xxxxxx"];
[zipArchive UnzipFileTo:{pathToDirectory} overWrite:YES];
[zipArchive UnzipCloseFile];
[zipArchive release];
person Srikar Appalaraju    schedule 12.07.2012
comment
то есть вы хотите сказать, что мы можем распаковывать только сжатые данные gzip, а не сжатые данные через asi. - person Aisha; 12.07.2012
comment
попробуй. посмотрите, работает ли это. если zip не работает в asi. тогда см. мое обновление выше. - person Srikar Appalaraju; 12.07.2012