对于某些情况,我正在编写一个iPhone应用程序,必须在首次启动时获取大量(~500 MB)批量的PNG图像。在我的研究过程中,我遇到了AFNetworking和NSURLSession作为获取图像的可能方法,但这两个API都需要使用URL,例如,
NSURL* imageURL = [NSURL URLWithString:@"http://www.google.com/images/imageName.png"];
我的问题是,如果我试图检索的图像或图像数据不在某些公共域中,如http://www.google.com,而是某个已知IP地址的私人服务器,例如我的DigitalOcean Droplet,如何检索或构建其URL?
我确实知道服务器上图像的确切路径,而不是如何从iOS进入服务器,因为我在stackoverflow上找到的所有示例都假设我使用的是标准的http://
网址。 / p>
答案 0 :(得分:1)
请参阅此文章,了解如何从DigitalOcean Droplet分配/获取公共IP地址。 https://www.digitalocean.com/community/tutorials/how-to-use-floating-ips-on-digitalocean
它很长,因为它是供应商特定的。但是,在AFNetworking上使用公共IP地址应该可以正常工作。
答案 1 :(得分:1)
只需替换
http://www.google.com
使用您的IP地址
http://xxx.xxx.xxx.xxx:<port>
甚至
http://localhost:8080
如果您在本地进行测试,则有效。
请注意,域名只是一个人类可读的名称,可以帮助人们记住&amp;轻松打字,它最终会在后面返回服务器的IP。
顺便说一下,我建议您使用域w / CNAME记录来引用您的服务器,以防服务器关闭或您希望将来更改服务器,因此您只需要更改域的CNAME记录没有用于部署仅用于更改URL的新App版本。