iPhone-Web服务客户端应用程序

iPhone-Web服务客户端应用程序,iphone,Iphone,我正在编写一个非常简单的web服务客户端应用程序。 我有以下问题: 1.是否有一种标准的通用方法来编写web服务使用部分,以便它不会干扰主GUI线程?考虑到web请求需要很短的时间才能完成(但永远不知道),使用主线程是否是常见的做法? 有教程的链接吗? 2.我看到的所有示例都通过GET调用web服务。我需要将数据发布到web服务。 任何使用POST?的已知示例/教程如果您使用的是iPhone内置的web请求API NSURLConnection,您可以在主线程上运行请求,但可以异步运行,并在返回

我正在编写一个非常简单的web服务客户端应用程序。 我有以下问题: 1.是否有一种标准的通用方法来编写web服务使用部分,以便它不会干扰主GUI线程?考虑到web请求需要很短的时间才能完成(但永远不知道),使用主线程是否是常见的做法? 有教程的链接吗? 2.我看到的所有示例都通过GET调用web服务。我需要将数据发布到web服务。
任何使用POST?

的已知示例/教程如果您使用的是iPhone内置的web请求API NSURLConnection,您可以在主线程上运行请求,但可以异步运行,并在返回数据时回调委托。这使得应用程序能够响应用户事件。如果在主线程上运行返回数据的解析或处理花费的时间太长,则应在主线程上运行NSURLConnection,然后以增量方式或在下载完成后将响应数据移交给辅助线程进行纯计算处理

可以在非主线程上启动NSURLConnections,但需要在非主线程上创建runloop,而且Apple库中有随机线程安全错误的报告。如果您确实需要在非主线程上运行请求本身,您可以使用第三方库,但除非在非常特殊的情况下,否则不需要这样做

使用NSURLConnection生成POST请求非常简单:

    NSString * requestBody = @"format up your body here, which is often form-urlencoded";
NSURL * nsurl = [NSURL URLWithString: @"http://example.com/post_request_receiver"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:nsurl];
// set appropriate content type here, usually application/x-www-form-urlencoded
    [theRequest addValue: @"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[theRequest addValue: [NSString stringWithFormat:@"%d", [requestBody length]] forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [requestBody dataUsingEncoding:NSUTF8StringEncoding]];

conn = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES];

你读过任何文件吗?试试谷歌搜索“iPhone XML解析教程”