首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >iOS网站交互(NSURLConnection)设计/模式

iOS网站交互(NSURLConnection)设计/模式
EN

Stack Overflow用户
提问于 2012-12-16 03:01:19
回答 1查看 444关注 0票数 2

这是一个关于如何设计一个与网站交互的应用程序的问题。

我有一个查询网站信息的应用程序,使用异步NSURLConnection (我认为这是iOS中的首选方法)。有问题的网站没有api/web服务接口。交互就像浏览器一样,发送请求,接收答案,解释答案以确定下一步操作。

该站点还使用用户名和密码进行保护,并且确实如此。因此,当我想要与网站交互时(比如说,使用“获取照片列表”,“下载照片”,“上传照片”),我需要首先登录,当我完成时,我将注销。

我想这样写我的函数(但我对建议持开放态度,也许我看错了)

代码语言:javascript
运行
复制
login
if login successful
  get list of photos
logout

然后,当用户请求它时,我想

代码语言:javascript
运行
复制
login
if login successful
  download photo
logout

我遇到的问题是,每次触发NSURLConnection时,-connectionDidFinishLoading都会收到回复。所以我需要保持某种状态来知道下一步要做什么,是为了获取照片列表还是为了下载照片而登录。

现在,问题不是我不能让它工作,问题是如何干净有效地设置这样的东西,这样它就可以扩展,这样它就可以支持20+甚至50+用例,并且仍然很容易维护。强调并不是所有的用例都像上面说明的那样简单。

我正在尝试实现的一个例子是facebook应用程序。该应用程序还需要登录到facebook,支持像张贴项目,下载帖子,像帖子,上传照片和许多其他的一系列用例。他们是怎么设计出这样的东西的?

EN

回答 1

Stack Overflow用户

发布于 2012-12-16 03:32:21

如果问题是如何登录到您的服务器,实现细节将根据您的服务器如何验证“登录”而略有不同。一种模型是简单的HTTP POST。另一种模型是authentication challenges,如“URL加载系统编程指南”中所述。

如果您不知道您的web服务器采用的是哪种样式,您通常可以通过尝试使用web浏览器中的URL访问其中一个受保护的文件。如果您看到如下屏幕,您的服务器将面临身份验证挑战:

如果您没有看到web浏览器生成的弹出窗口,而是看到类似HTML“请登录”的消息,那么您可能必须执行POST登录过程。请注意,如果您的服务器正在使用这种过程,如果登录成功或失败是通过HTML页面报告的,那么让您的应用程序解密就有点麻烦了。如果您有一个提供JSON或XML响应而不是HTML响应的登录页面版本,If将是理想的选择。我不知道您是否有足够的空间在服务器上执行此操作,但如果您可以这样做,它将极大地简化您的iOS开发。

如果您正在登录进行POST,请参阅SimpleURLConnections sample app以了解如何向您的web服务器发出简单的POST (和GET)请求。

有关如何处理身份验证挑战的示例,请参阅AdvancedURLConnections sample app

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13895208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档