我正在使用NSURLConection及其委託方法從聯機TTS api異步獲取數據。這是我想負荷的網址:NSURLConnection從重定向的URL獲取數據
http://tts-api.com/tts.mp3?q=hello world
以上URL重定向,並給我們,我需要下載一個MP3文件。我用下面的委託方法下載的MP3文件:
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
if (connection == connectionToTTSAPI) {
mp3Manager = [NSFileManager defaultManager];
localPath = [[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"hello.mp3"];
mp3Handler = [NSFileHandle fileHandleForWritingAtPath:localPath];
if (!mp3Handler) {
[[NSFileManager defaultManager] createFileAtPath:localPath contents:nil attributes:nil];
mp3Handler = [NSFileHandle fileHandleForWritingAtPath:localPath];
}
@try {
[mp3Handler seekToEndOfFile];
[mp3Handler writeData:data];
}
}
}
由於有多個NSURLConnection的,我用我的節目,我樹立了一個if條件來識別的響應是其連接。但是我沒有收到mp3文件,所以我在委託方法中設置了一個斷點,並發現與TTS API的連接永遠不會得到響應。我認爲這是因爲重定向。我在使用下面的方法時遇到了一些其他問題,但我沒有在NSURLConnectionDelegate
中找到這樣的函數,並且也作爲NSURLConnection的入門者,我不知道如何使用該方法來處理重定向。沒有一個結果讓我清楚如何使用它。
- (NSURLRequest *)connection: (NSURLConnection *)inConnection
willSendRequest: (NSURLRequest *)inRequest
redirectResponse: (NSURLResponse *)inRedirectResponse;
看起來很腥......你怎麼處理respons?..也有多少「if」條件? –
如果是讓你困惑的if條件,我使用它,因爲我使用多個NSURLConnections。 –
我總是使用AFNetworking(http://afnetworking.com)多次請求/下載featured..bcz它給了我很多控制多重請求... –