Xcode如何调用网站并收集响应

时间:2013-06-27 05:48:34

标签: cocoa-touch nsurlconnection

最近我一直试图在服务器上调用* .php文件并收集响应。我正在尝试在xcode中执行此操作来制作ios应用程序。我试图用:

来做
NSURLConnection *conn = [[NSURLConnection alloc] init];
(void)[conn initWithRequest:request delegate:self];

但是当我这样做时程序崩溃并且它表示抛出异常。所以我想知道如何轻松调用Web服务器并获得响应。我对ios开发很新,所以你不知道我什么都知道;)。

我一直在浏览很多教程,但我似乎无法完成一项工作。

4 个答案:

答案 0 :(得分:1)

有几种方法可以在目标C中调用Web服务。您可以使用ASHIHTTPrequest一个好的文档Here.此外我假设您还没找到{ {3}}至今。

此外,如果您严格要使用This tutorial。这可以是你的方式。这是一个简单登录api的示例,其中用户ID和密码的值作为请求的标题值发送。

NSMutableURLRequest *theRequest   = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:kWebServiceURL]];
[theRequest setValue:kWSReqH_GBLRequestMethodName  forHTTPHeaderField:kWSHFunctionName];
[theRequest setValue:userId forHTTPHeaderField:kWSReqH_GBLUserId];
[theRequest setValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

//calling for request
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

答案 1 :(得分:1)

所以我可能会问这个问题是错的,但这正是我想要的:

https://www.youtube.com/watch?v=FXQiEfjiYns

这是SimpleSDK的视频。我测试了我的* .php文件的代码,它运行得很好。

答案 2 :(得分:0)

发送请求后,您无法立即释放conn对象。因此,在类中将其设置为静态或成员变量。像这样......

@property (nonatomic, strong) NSURLConnection *connection;

...

@synthesize connection;
...

NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"<url>"]];
self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
[self.connection start];

然后实现委托方法,如- (void)connectionDidFinishLoading:(NSURLConnection *)connection和其他必需的方法。

你能试试吗?

答案 3 :(得分:0)

您遇到错误,因为您必须正确实现NSURLConnection并实现它的委托方法。

通过这些链接,您将了解如何声明和构建它:

NSURLConnection delegate method http://yuvarajmanickam.wordpress.com/2012/10/17/nsurlconnection-basics-for-ios-beginners/

示例: http://cagt.bu.edu/w/images/8/8b/URL_Connection_example.txt