我正在构建我的第一个iPhone应用程序(xCode,objective-c),它必须使用Web服务或WCF服务与现有网站进行通信。我主要研究使用网站中托管的WCF服务,该服务可以发送和接收JSON(使其轻量级而不是SOAP的开销)。然而,我发现越来越难以在iPhone方面工作,而不必使用各种第三方包装器,如JSON Framework和ASIHTTPRequest。
有人可以告诉我,如果我朝着正确的方向前进并使用正确的工具,因为对于我认为相对直接的事情来说,这似乎非常复杂。也许是因为我已经习惯了.NET C#,其中很多东西都是开箱即用的。
即如果我要将以下示例JSON example
中的以下JSON发送回我的服务 {
“firstName”:“John”,
“lastName”:“史密斯”,
“年龄”:25,
“地址”:{
“streetAddress”:“21 2nd Street”,
“城市”:“纽约”,
“州”:“纽约”,
“postalCode”:“10021”
},
“phoneNumber”:[
{“type”:“home”,“number”:“212 555-1234”},
{“type”:“fax”,“number”:“646 555-4567”}
]
}
答案 0 :(得分:4)
我使用JSON格式化数据 - 编码和解码JSON非常简单this tutorial should show。此外,如果您要发送的数据变得更复杂,JSON将缩放以匹配它。通过HTTP发送原始数据会让您感到困惑,因为如果没有某种协议,您的应用程序会变得更加复杂。我避开了SOAP - 每当我试图使用它时,它就会变得很大而且令人困惑。
对于ASI,我个人喜欢使用它 - 获得基本连接非常简单,但如果你需要它可以做强大的事情 - 看看他们的basic documentation here。
以下是ASI和JSON从www.example.com获取数据并将其解析为NSDictionary的示例:
- (void)startConnection {
NSURL *url = [NSURL URLWithString:@"http://www.example.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
NSString *rawdata = [request responseString];
NSDictionary* lotsOfData = [rawdata JSONValue];
... Do stuff with your JSON here ...
}
答案 1 :(得分:-1)
我会使用直接的HTTP协议。没有JSON或SOAP。
有许多类可以像NSURLConnection
一样处理HTTP。
如果你坚持使用JSON,你可以使用一些C / C ++ JSON library。
如果您遇到SOAP,可以使用Apache的AXIS或其他一些C / C ++ SOAP客户端库。
同样,正如我所提到的,最简单的方法是使用 HTTP 。