NSData文件类型验证

时间:2010-11-18 11:21:00

标签: iphone objective-c web-services macos nsdata

我正在使用应该返回wav文件的Web服务。我在NSData对象中捕获结果并将其保存到本地文档控制器。

如何在保存之前验证数据确实是wav?如果服务器上有错误,它可能会返回一长串HTML垃圾。

谢谢!

NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:RequestURL 
                                                        cachePolicy:NSURLRequestUseProtocolCachePolicy 
                                                    timeoutInterval:30.0];

NSHTTPURLResponse* response = nil;
NSData *soundData = [NSURLConnection sendSynchronousRequest:req  returningResponse:&response error:&error];

//save voicemail file locally
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *destPath = [documentsDirectory stringByAppendingPathComponent:@"returned.wav"];
[fileManager createFileAtPath:destPath contents:soundData attributes:nil];

1 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点(希望其中一个可以接受):

1)检查NSHTTPURLResponse的statusCode(类型NSInteger)(如果一切正常,应该等于200),

2)检查NSHTTPURLResponse的MIME类型(类型NSString *)(如果我没错,应该是@“audio / vnd.wave”)