Iphone Web服务JSON与SOAP、XML-RPC、REST不同?

Iphone Web服务JSON与SOAP、XML-RPC、REST不同?,iphone,cocoa-touch,web-services,Iphone,Cocoa Touch,Web Services,哪一款最适合iphone应用程序?JSON与这三种webservice方法不同 你能告诉我吗?JSON只是一种序列化格式,而SOAP和XML-RPC更像是请求-响应交换协议。这基本上允许您调用远程方法 换句话说,你无法真正比较这些。如果您正在构建RESTful应用程序,那么序列化到JSON(或者简单的旧XML)就可以了。请不要使用SOAP或WS-*除非是绝对必要的。JSON只是一种序列化格式,而SOAP和XML-RPC更像是请求-响应交换协议。这基本上允许您调用远程方法 换句话说,你无法真正比较

哪一款最适合iphone应用程序?JSON与这三种webservice方法不同


你能告诉我吗?

JSON只是一种序列化格式,而SOAP和XML-RPC更像是请求-响应交换协议。这基本上允许您调用远程方法


换句话说,你无法真正比较这些。如果您正在构建RESTful应用程序,那么序列化到JSON(或者简单的旧XML)就可以了。请不要使用SOAP或WS-*除非是绝对必要的。JSON只是一种序列化格式,而SOAP和XML-RPC更像是请求-响应交换协议。这基本上允许您调用远程方法


换句话说,你无法真正比较这些。如果您正在构建RESTful应用程序,那么序列化到JSON(或者简单的旧XML)就可以了。请不要使用SOAP或WS-*除非绝对必要。

同意Anton的观点,JSON是一种序列化格式(如XML或CSV)。JSON通常比XML轻,但有些数据结构不适合JSON序列化


如果您使用的是RESTful接口,则可以(但不推荐)根据服务调用在JSON和XML之间交替使用。我发现使用XML作为序列化方法非常适合iPhone SDK,因为它在NSXMLParser中提供了本机XML流解析。

同意Anton的观点,JSON是一种序列化格式(如XML或CSV)。JSON通常比XML轻,但有些数据结构不适合JSON序列化


如果您使用的是RESTful接口,则可以(但不推荐)根据服务调用在JSON和XML之间交替使用。我发现使用XML作为序列化方法非常适合iPhone SDK,因为它在NSXMLParser中提供了原生XML流解析。

JSON可能是REST请求得到答案的格式之一

JSON在浏览器环境中可以直接解析,是在交互性很强的web应用程序中进行通信的最佳格式。REST是一种向服务器定义智能GET或POST请求的方法,该请求可以以多种格式回复:xml、纯文本、json

对于web应用程序或iPhone应用程序,我会选择它。

它需要更少的库(或者根本不需要库),适合异步http请求,具有最小的开销,并且不像SOAP和XML-RPC那样能够解决web应用程序通常没有的问题:主要是强类型。

JSON可能是REST请求得到答案的格式之一

JSON在浏览器环境中可以直接解析,是在交互性很强的web应用程序中进行通信的最佳格式。REST是一种向服务器定义智能GET或POST请求的方法,该请求可以以多种格式回复:xml、纯文本、json

对于web应用程序或iPhone应用程序,我会选择它。
它需要更少的库(或者根本不需要库),适合异步http请求,具有最小的开销,并且不像SOAP和XML-RPC那样能够解决web应用程序通常没有的问题:主要是强类型。

是比XML和/或JSON更好的通信协议。作为一种二进制格式,它甚至更紧凑,并且使用严格的格式解析速度更快。而且它还消耗了很多更少的内存。更简单的解析器也意味着应用程序更安全

作为奖励,已经有了Java、.NET和PHP框架来公开web服务。真的很容易。Asume您拥有以下Java接口:

public interface Test {
  public String getGreeting();
  int addNumbers(int a, int b);
}
然后使用Hessian在服务器上实现它是一个简单的过程:

public class TestSevlet extends HessianServlet implements Test {
  public String getGreeting() { return "Hello World!"; }
  public int addNumbers(int a, int b) { return a + b; }
}
例如,服务器也可以用.NET或PHP轻松实现。有许多Hessian实现可用

在iPhone端,Java接口需要转换为Objective-C协议:

@protocol Test
-(NSString*)getGreeting;
-(int)addNumbers:(int)a :(int)b;
@end
然后使用[HessianKit][2]为该服务获取代理几乎同样简单:

id<Test> proxy = [CWHessianConnection proxyWithURL:serviceURL
                                           protocol:@protocol(Test)];
NSLog(@"Greeting: %@", [proxy getGreeting]);
NSLog(@"The answer: %d", [proxy addNumbers:40 :2]);
是比XML和/或JSON更好的通信协议。作为一种二进制格式,它甚至更紧凑,并且使用严格的格式解析速度更快。而且它还消耗了很多更少的内存。更简单的解析器也意味着应用程序更安全

作为奖励,已经有了Java、.NET和PHP框架来公开web服务。真的很容易。Asume您拥有以下Java接口:

public interface Test {
  public String getGreeting();
  int addNumbers(int a, int b);
}
然后使用Hessian在服务器上实现它是一个简单的过程:

public class TestSevlet extends HessianServlet implements Test {
  public String getGreeting() { return "Hello World!"; }
  public int addNumbers(int a, int b) { return a + b; }
}
例如,服务器也可以用.NET或PHP轻松实现。有许多Hessian实现可用

在iPhone端,Java接口需要转换为Objective-C协议:

@protocol Test
-(NSString*)getGreeting;
-(int)addNumbers:(int)a :(int)b;
@end
然后使用[HessianKit][2]为该服务获取代理几乎同样简单:

id<Test> proxy = [CWHessianConnection proxyWithURL:serviceURL
                                           protocol:@protocol(Test)];
NSLog(@"Greeting: %@", [proxy getGreeting]);
NSLog(@"The answer: %d", [proxy addNumbers:40 :2]);