Eya*_*yal 5 c# iphone networking cocoa-touch objective-c
如果我想开发一个客户端 - 服务器设计的iPhone应用程序(iPhone设备作为客户端和ac#服务器),有两个问题:
因此,如果我理解正确的,从客户端向服务器发送诸如"创建新用户"之类的消息的过程如下:1.客户端将创建包含命令"CREATE NEW USER"的JSON/XML和新用户详细信息.2.客户端将通过HTTP请求(作为HTTP请求的主体)发送此JSON/XML,其URL在服务器端映射到ac#方法.3.这将在服务器上触发相应的方法,并在数据库上创建新用户.4.服务器将创建包含重播"CREATED"的JSON/XML,并将通过HTTP响应(作为HTTP响应的主体)将其发送到客户端.那是对的吗?
您需要通过 http 获取 xml 或 json。Web 服务和 REST over http 是为了解决您所面临的不同平台之间的互操作性问题而创建的。
由于您使用 C# 作为服务器,因此您可以研究 WCF 并使用 REST 模式或 SOAP(Web 服务)来公开您的操作和数据。关于数据,您可以通过网络将这些对象序列化为 JSON 或 XML。
对于 iPhone 使用,我建议使用 REST(因为它基本上将 url 请求路径映射到 C# 方法)。从手机的角度来看,这只是一个 url 请求,然后返回 xml 或 json 数据。
在 C# 中,您只需创建方法并使用 DataContract 属性装饰它们即可。然后,在您的方法中将它们映射到 url 相对路径。在网络上搜索 WCF 和 REST 服务。您可以在任何主机中从命令行到 Windows 服务再到 IIS 运行它。
http://msdn.microsoft.com/en-us/library/bb412178.aspx
创建这些 C# 服务时,如果是 REST,您可以在浏览器中发出请求并查看数据。您还应该查看 Fiddler 来检查您的流量:http://www.fiddler2.com/fiddler2/
在手机端,首先需要发出http请求。您可以使用 iOS 类来做到这一点,但像 ASIHTTPRequest 这样的包装器使它变得更容易。一旦收到响应,您就必须对其进行解析。如果您选择 XML,iOS 类会提供解析 xml 响应的简单方法。如果您选择 JSON,那么有像 SBJSON 这样的类。
http://allseeing-i.com/ASIHTTPRequest/ -(使用前请阅读此ASIHTTPRequest 博客)
https://github.com/stig/json-framework
还有一个更高级别的框架,称为 RESTKit,它使 iPhone 端变得更加容易。
https://github.com/RestKit/RestKit
希望这有助于您将其联系起来。
编辑:添加创建新用户场景:
客户端使用数据(用户名、密码等)创建一个用户对象,并向http://yourserver/myservice/users发送 HTTP PUT 请求。客户端将用户对象序列化为正文中的 JSON/XML。
服务器接收请求。在服务器上,您有一个 WCF“myservice”服务(它是一个类)。它有一个“public User CreateUser(User user)”方法。在该方法中,它通过执行任何必须执行的操作(调用数据库等...)来创建用户对象。它返回 User 对象,因为服务器可能添加了用户 ID 等信息。下面的文章有一个 put 请求示例。
http://damianm.com/tech/building-a-rest-client-with-wcf/
客户端将获得响应,并且包含 id 等所有详细信息的用户对象将以 JSON/XML 形式出现在正文中。它将反序列化为手机上的 User 对象。
服务器还可以公开以下内容: /User/{id} --> public User GetUser(string id);