如何連接iPhone和Web服務並獲取XML數據?




objective-c web-services (7)

您可以使用這兩行返回HTTP請求的響應。 您不需要任何配置。 如果您嘗試訪問PHP scritp,此代碼非常有用。 在您必須解析結果之後。

NSURL *URL=[[NSURL alloc] initWithString:stringForURL];
NSString *results = [[NSString alloc] initWithContentsOfURL :URL];

我知道如何使用iPhone連接到Web服務器,但現在我必須將iPhone連接到Web服務。 我不知道該怎麼做,也沒有在線提供的演示或課程。

有沒有人有任何想法?



在我看來,你有兩個選擇:

  • 使用第三方庫。 你可以試試wsdl2objc 。 它不適合我,但它正在積極發展,所以它每天都在改善。
  • 使用原始HTTP連接並處理每個請求/響應。 這就是我遵循的方式。 這很難,所以我也想知道更好的方法。

我已經為iPhone OS 3.0創建了一個開源應用程序,它展示瞭如何在iPhone應用程序中使用REST和SOAP服務,使用XML(使用8個不同的iPhone庫),SOAP,JSON(使用SBJSON和TouchJSON),YAML,Protocol Buffers(谷歌序列化格式)甚至來自PHP示例應用程序的CSV(包含在項目中)。

http://github.com/akosma/iPhoneWebServicesClient

該項目模塊化,足以支持未來的許多其他格式和庫。

SlideShare中的以下演示文稿顯示了我在性能,易於實現和有效負載特性方面的發現:

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



您可能會發現這個名為Intro to SOAP Web Services的教程很有用。 他演示瞭如何打包請求,將其發送到Web服務以及讀取響應。

如果你需要一些關於XML解析的幫助,那麼TouchXML庫將為你提供一個很好的xml“文檔”。 只是要小心內存使用情況。

如果你必須解析大型XML消息,那麼關於Cocoa中的libxml和xmlreader的教程將向你展示如何用低級事件樣式解析器解析XML。






cocoa-touch