我该如何在Objective-C中调用Web服务?

5
我有一个使用ColdFusion开发的Web服务,我正在尝试在iPhone上使用。该Web服务返回JSON数据,应该很容易阅读。
然而,我一直无法找到一个好的简单示例,展示如何在iPhone应用程序中调用Web服务并使用数据。是否有任何好的教程或示例,我只是错过了?
3个回答

11

A. 获取 ASIHTTPRequest

B. 获取 json-framework

C. 使用 A 从你的 web 服务获取数据,然后将其传递给 B,它会返回一个字典。

就是这样。


2
要使用JSON,您需要使用第三方框架,因为没有内置支持。我建议使用这个http://code.google.com/p/json-framework/,因为它是最简单实现的之一。您可以使用NSURLRequest进行GET请求,或者如果需要进行更复杂的请求(例如使用基本身份验证),我还建议使用http://allseeing-i.com/ASIHTTPRequest/
我写了一篇博客文章,详细介绍了如何在Cocoa/Objective-C中使用JSON,并提供了一个示例: http://zachwaugh.com/2009/01/how-to-use-json-in-cocoaobjective-c/

1

有几种方法可以做到这一点,我将提到其中两种

1- 如果您只是收到一些文本响应,可以使用[NSString stringWithContentOfURL:url],这将填充字符串以响应Web请求。

2- 你可以使用NSURLRequest / NSMutableURLRequest和NSURLConnection一起进行请求并获取数据,这里是关于NSURLRequest的参考链接http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSURLRequest_Class/Reference/Reference.html,你需要设置一些属性,如URL、请求类型(GET、POST)、httpHeaders(如果适用),完成后你可以使用NSURLConnection发出请求,这是一个参考链接http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html,你可以使用sendSynchronousRequest或initWithRequest方法并启动(以进行异步请求),这将获取你的响应(在这两种情况下,你都会收到一些NSData对象,你可以将其转换为它所需要的任何内容(字符串或某些图片数据或其他)。

这个问题在SO上已经被提出了几次,只要四处看看,我相信你会找到好的例子,这里有一个链接我可以从iPhone应用程序发出POST或GET请求吗?

此外,还有一个JSON框架可以为您解析JSON响应,这里有一个链接谈论它http://iphone.zcentric.com/2008/08/05/install-jsonframewor/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接