0
私はwavファイルを返さなければならないWebサービスを使用しています。結果をNSDataオブジェクトに取り込み、それをローカルドキュメントディレクターに保存します。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サーバからのエラー応答を持っている必要があります400または500の範囲の応答。 – JeremyP
要求がサーバーの観点から「成功」する可能性があるため、MIMEタイプのチェックが理想的です。ありがとうございました! – mojo
最終コード: NSHTTPURLResponse * response = nil; \t NSData * soundData = [NSURLConnection sendSynchronousRequest:req returningResponse:&response error:&error]; //ボイスメールファイルをローカルに保存する NSDictionary * headers = [response allHeaderFields]; NSString * contentType =(NSString *)[headers objectForKey:@ "Content-Type"]; if([contentType isEqual:@ "audio/x-wav"]) \t NSLog(@ "これはwavファイルです!"); else \t NSLog(@ "予期しない応答の種類:%@"、contentType); – mojo