Objective c dataWithContentsOfURL和HTTP 302重定向

Objective c dataWithContentsOfURL和HTTP 302重定向,objective-c,ios,nsdata,http-status-code-302,Objective C,Ios,Nsdata,Http Status Code 302,[NSData dataWithContentsOfURL:如何处理302重定向 我通过传递PHP页面的URL从服务器请求MP3文件,该页面将检查用户代理并重定向到其他服务器上的MP3文件。切勿在实际应用程序中使用[NSData datawithcontents sofURL:。它进行同步网络连接,如果没有足够快地完成,你的应用程序将被操作系统杀死 坚持使用NSURLConnectionDataDelegate或使用[NSURLConnection sendAsynchronousRequest

[NSData dataWithContentsOfURL:
如何处理302重定向


我通过传递PHP页面的URL从服务器请求MP3文件,该页面将检查用户代理并重定向到其他服务器上的MP3文件。

切勿在实际应用程序中使用
[NSData datawithcontents sofURL:
。它进行同步网络连接,如果没有足够快地完成,你的应用程序将被操作系统杀死


坚持使用
NSURLConnectionDataDelegate
或使用
[NSURLConnection sendAsynchronousRequest:queue:completionHandler:
编写包含
[NSData DATA WITH CONTENTSOFURL:]的
loadImageInBackground
函数 并在后台线程中运行,如下所示:

[self performSelectorInBackground:@selector(loadImageInBackground:) withObject:nil];

这不会进行同步网络连接(因此不会冻结UI).

你自己也试过吗?@Joe,没有,因为服务器端还没有上线,我不想浪费时间走上一条行不通的路。我只是想其他人可能已经试过了,发现它失败了,可以分享他们的经验。我肯定它很好,但你可以通过creatin来确定g重定向URL并调用它。例如,尝试一下。我最终使用了
[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]
。我现在发现了多线程。作为记录,
NSURLConnection
确实正确处理了302。这不是原始问题的答案。+dataWithContentsOfURL:也可以在“真实应用”中的另一个线程中使用。这是不正确的。
[NSData dataWithContentsOfURL:]
可以在一个单独的线程中使用,这将是100%安全的