【问题标题】:How to consume ASPX webservices in iOS?如何在 iOS 中使用 ASMX Web 服务?
【发布时间】:2011-08-24 17:49:28
【问题描述】:

谁能澄清在 iOS 中使用 aspx webservices 的过程?我已经尝试过 JSON 框架,但现在需要创建一个使用 XML 格式的 .net Web 服务的应用程序。我既需要向服务器发布一些数据,也需要从服务器获取数据。我已经阅读了我找到的现有 iOS XML 解析器 (here)

问题是我是否需要做额外的设置,比如将我的查询字符串包装在 SOAP 或 smth 中,以便与网络服务器通信?仅使用链接中提到的一个库就足够了吗,还是我需要额外的东西?

更新:我在 web (here) 上找到了一个教程,该教程演示了如何使用 Json 框架使用 web 服务。另外,我发现了另一个使用 NSXMLParser (here) 演示它的方法。我对 WSDL 和 SOAP 不是很熟悉,所以任何关于如何实现的详细解释都是可取的:)。在这两个示例中,您只需构建一个 xml 格式的请求字符串并执行它,就是这样。这两个示例实际上都绕过了 SOAP 和 WSDL 的繁重,所以我想知道我是否必须知道并做更多的事情来构造一个请求字符串、执行它并获得响应?

【问题讨论】:

  • 此链接将对您有所帮助stackoverflow.com/questions/204465/…
  • 没有“aspx webservice”之类的东西。你是说 SOAP,对吧?
  • 是的。我当前的任务涉及向 asmx webservice 发布和获取一些信息。 Web 服务使用 SOAP XML 格式进行通信。所以我想知道我应该使用什么库来构造 post/get 请求字符串,然后如何以相同的方式获得响应。

标签: iphone asp.net objective-c xml web-services


【解决方案1】:

虽然 wsdl2objc 存在(正如@Girish Kolari 所指出的),但事实是没有简单的答案。我从来没有成功地让 wsdl2objc 很好地完成我无法手动完成的事情。您将需要学习 SOAP 和 WSDL。如果您无法访问 REST 接口,这只是生活中的事实。根据我的经验,对于简单的 SOAP 访问,最好的选择是手动完成,而对于有些复杂的 SOAP 访问,最好的选择是 gSOAP。对于非常复杂的访问,您最好的选择是重新设计一些东西,使其不那么复杂,最好是在 REST 中。 SOAP 是一些语言 (C#) 保护您免受的巨大痛苦。 ObjC 不会保护您免受它的影响,因此它仍然是一个巨大的痛苦。

是的,肥皂在我嘴里留下了不好的味道。

【讨论】:

  • 感谢您的安慰。我没有关于这些网络服务的确切交换格式的规范。目前,我只知道它们可以作为 asmx 访问,我的意思是 .net webservices。在进行了一些谷歌搜索之后,我遇到了模棱两可的博客,其中一个说您需要 SOAP 来执行发布/获取请求,而我在问题中引用的其他链接只是说明使用手动构造这些请求就足够了一些图书馆。
  • 因此,从您的回答中,我了解到如果 Web 服务不需要使用 SOAP XML 格式来发布和获取消息,那么 SOAP 可能不是强制性的。因此,我想这两个链接带有如何使用 Json 框架使用 .NET Web 服务的示例,如果 Web 服务以简单的方式(REST 或简单的 SOAP)构建,NSXMLParser 可能适合我。在获得实际规格之前,如何区分这些 Web 服务的当前格式是什么?我需要执行与某些当前网站相同的操作。我看到我执行了 asmx 请求,我还要检查什么?
  • 我相信所有的 ASMX 服务都是基于 SOAP 的。但请记住,SOAP 只是基于 HTTP 的 XML 协议。只要不太复杂(例如使用 WS-Security),您通常可以手动编写传出的 XML 并手动解析传入的 XML(使用 NSMXLParser 或任何其他解析器)。在没有规范的情况下找出答案的最佳方法是查看现有客户端的流量。
猜你喜欢
  • 2013-10-23
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 2013-04-10
  • 1970-01-01
相关资源
最近更新 更多