[NSData dataWithContentsOfURL:]
如何处理302重定向?dataWithContentsOfURL和HTTP 302重定向
我通过传递PHP页面的URL来请求服务器上的MP3文件,该页面将检查用户代理并重定向到另一台服务器上的MP3文件。
[NSData dataWithContentsOfURL:]
如何处理302重定向?dataWithContentsOfURL和HTTP 302重定向
我通过传递PHP页面的URL来请求服务器上的MP3文件,该页面将检查用户代理并重定向到另一台服务器上的MP3文件。
千万不要在真实应用中使用[NSData dataWithContentsOfURL:]
。它会建立一个同步的网络连接,如果速度不够快,你的应用将被操作系统杀死。
坚持NSURLConnectionDataDelegate
或使用[NSURLConnection sendAsynchronousRequest:queue:completionHandler:
。
我结束了使用'[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]''。我现在发现了多线程。为了记录,'NSURLConnection'确实处理302。 – colincameron 2012-03-09 10:56:22
这不是原始问题的答案。 + dataWithContentsOfURL:也可以在“真实应用程序”的另一个线程中使用 – igrek 2014-10-08 06:40:15
这是不正确的。 '[NSData dataWithContentsOfURL:]'可以在单独的线程中使用,它将100%安全。 – Antzi 2015-06-26 14:41:41
撰写您loadImageInBackground
功能包含[NSData dataWithContentsOfURL:]
,并在后台线程中运行它,就像这样:
[self performSelectorInBackground:@selector(loadImageInBackground:) withObject:nil];
这不会使同步网络连接(因此也不会冻结UI)。
你甚至尝试过吗? – Joe 2012-03-06 13:43:22
@Joe,不,我没有,因为它的服务器端还没有生效,我不想浪费时间走下一条不起作用的道路。我只是觉得其他人可能以前尝试过,发现它失败了,可以分享他们的经验。 – colincameron 2012-03-06 13:46:15
嗯,我相信它可以正常工作,但您可以确定通过创建重定向URL并将其调用。例如尝试http://goo.gl。 – Joe 2012-03-06 14:36:06