如何连接iPhone和Web服务并获取XML数据?

27 iphone cocoa-touch web-services objective-c

我知道如何使用iPhone连接到Web服务器,但现在我必须将iPhone连接到Web服务.我不知道该怎么做,也没有在线提供的演示或课程.

有没有人有任何想法?

amr*_*rox 20

您可能会发现这个名为Intro to SOAP Web Services的教程很有用.他演示了如何打包请求,将其发送到Web服务以及阅读响应.

如果您需要一些XML解析方面的帮助,那么TouchXML库将为您提供一个很好的xml"文档".只是要小心内存使用情况.

如果你必须解析大型XML消息,那么关于Cocoa中的libxml和xmlreader的教程将向你展示如何用低级事件样式解析器解析XML.


Adr*_*ski 16

我已经为iPhone OS 3.0创建了一个开源应用程序,它展示了如何在iPhone应用程序中使用REST和SOAP服务,使用XML(使用8个不同的iPhone库),SOAP,JSON(使用SBJSON和TouchJSON),YAML,协议缓冲区(谷歌序列化格式)甚至来自PHP示例应用程序的CSV(包含在项目中).

http://github.com/akosma/iPhoneWebServicesClient

该项目模块化,足以支持未来的许多其他格式和库.

SlideShare中的以下演示文稿显示了我在性能,易于实施和有效负载特性方面的发现:

http://www.slideshare.net/akosma/web-services-3439269


Ger*_*.ch 12

您可以使用这两行返回HTTP请求的响应.您不需要任何配置.如果您尝试访问PHP scritp,此代码非常有用.在您必须解析结果之后.

NSURL *URL=[[NSURL alloc] initWithString:stringForURL];
NSString *results = [[NSString alloc] initWithContentsOfURL :URL];
Run Code Online (Sandbox Code Playgroud)

  • 只要脚本快速返回,因为此代码创建了一个阻止当前线程的同步请求(可能是UI线程,这是一个非常糟糕的主意).尽可能使用异步连接.http://akos.ma/_pp0 (2认同)

Gui*_*ido 3

在我看来,你有两种选择:

  • 使用第三方库。您可以尝试wsdl2objc。它对我来说不起作用,但它正在积极开发中,所以它每天都在进步。
  • 使用原始 HTTP 连接并处理每个请求/响应。这就是我遵循的方式。这很难,所以我也想知道更好的方法。