gpt4 book ai didi

c# - 开发客户端-服务器 iphone 应用程序

转载 作者:太空狗 更新时间:2023-10-30 03:50:47 26 4
gpt4 key购买 nike

如果我想开发一个具有客户端-服务器设计的 iPhone 应用程序(iPhone 设备作为客户端和 c# 服务器),有两个问题:

  1. 是否可以使用我自己的笔记本电脑来运行服务器?如果不是,我有什么选择?
  2. 我是否必须开发自己的消息传输协议(protocol)?

因此,如果我理解正确,从客户端向服务器发送“创建新用户”等消息的过程如下:1. 客户端将创建一个包含命令“CREATE NEW USER”和新用户详细信息的 JSON/XML。2. 客户端将通过 HTTP 请求(作为 HTTP 请求的主体)发送此 JSON/XML,其中的 URL 映射到服务器端的 c# 方法。3. 这将触发服务器上的适当方法,新用户将在数据库上创建。4. 服务器将创建包含重播“CREATED”的 JSON/XML 并将其通过 HTTP 响应(作为 HTTP 响应的主体)发送到客户端。对吗?

最佳答案

您需要通过 http 的 xml 或 json。基于 http 的 Web 服务和 REST 是为解决您所面临的不同平台之间的互操作性问题而创建的。

由于您正在为服务器使用 C#,因此您可以查看 WCF 并使用 REST 模式或 SOAP(网络服务)来公开您的操作和数据。关于数据,您可以通过网络将这些对象序列化为 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 blog)

https://github.com/stig/json-framework

rest web services in iphone

还有一个更高级别的框架,称为 RESTKit,它使 iPhone 端更容易。

https://github.com/RestKit/RestKit

希望这能帮助您将它联系在一起。

编辑:添加创建新用户场景:

The client creates a user object with the data (username, password etc...) and sends an HTTP PUT request to http://yourserver/myservice/users. The client serializes the user object to JSON/XML in the body.

What is the recommended/effective request payload for a REST PUT method?

PUT vs POST in REST

The server receives the request. On the server, you have a WCF "myservice" service (it's a class). It has a "public User CreateUser(User user)" method. In that method it creates a user object by doing whatever it has to do (call database etc...). It returns the User object because perhaps the server added info like the user id. The article below has a put request example.

http://damianm.com/tech/building-a-rest-client-with-wcf/

The client would get the response and the user object with all the details like id, etc... would be in the body as JSON/XML. It would deserialize that into a User object on the phone.

The server could also expose things like: /User/{id} --> public User GetUser(string id);

关于c# - 开发客户端-服务器 iphone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616400/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com