在某些情况下,我在下载文件或管理错误时遇到问题 (JSON)
下载工作非常好。问题是当用户请求下载时,服务器可以在少数情况下发送 404 或 200(使用 JSON)。
在这种情况下如何处理 JSON?当我们发送请求时,我们不知道我们是否会收到 JSON 错误(状态为 200 或 404)或压缩文件...
我看不到 responseObject 如何帮助我。
这是我的代码:
AFHTTPRequestOperation *operation = [[[AFHTTPRequestOperation alloc] initWithRequest:request] autorelease];
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:zipPath append:NO];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"Successfully downloaded zip file to %@", zipPath);
// is-it impossible to handle a JSON response here ?
// responseObject can help me ? don't think !
// do what I have to do after the download is complete
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
// 404
// is-it impossible to handle a JSON response here ?
if ([error code] == -1011)
{
}
}];
[operation setDownloadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) {
float progress = ((float)((int)totalBytesWritten) / (float)((int)totalBytesExpectedToWrite));
self.progressView.progress = progress;
}];
[operation start];
我需要制作 AFJSOnRequestOperation 吗?但是在这种情况下,如何接收下载的不是 JSON 的文件?感谢您的帮助。
编辑:正如我在评论中所写,只有当我评论该行时,我才能在成功块中获取并捕获 responseData:
operation.outputStream = [NSOutputStream outputStreamToFileAtPath:zipPath append:NO];
这是合乎逻辑的,我想响应进入 outputStream 而不是成功块。有解决方案吗?