IOS网络请求
IOS网络请求操作流程
1. 构造NSUSL对象2. 构造NSURLRequest请
3. 调用NSURLConnection发送请求
4. 返回NSURLRespond响应对象和NSError实例对象
5. 通过NSURLRespond得到数据
//同步请求
NSURL *url = [NSURL URLWithString: @"http://www.baidu.com/s?tn=baiduhome_pg&bs=NSRUL&f=8&rsv_bp=1&rsv_spt=1&wd=NSurl&inputT=2709"];
NSLog(@"Scheme: %@", [url scheme]);
NSLog(@"Host: %@", [url host]);
NSLog(@"Port: %@", [url port]);
NSLog(@"Path: %@", [url path]);
NSLog(@"Relative path: %@", [url relativePath]);
NSLog(@"Path components as array: %@", [url pathComponents]);
NSLog(@"Parameter string: %@", [url parameterString]);
NSLog(@"Query: %@", [url query]);
NSLog(@"Fragment: %@", [url fragment]);
NSLog(@"User: %@", [url user]);
NSLog(@"Password: %@", [url password]);
NSURLRequest * urlRequest = [NSURLRequest requestWithURL:url];
NSURLResponse * response = nil;
NSError * error = nil;
NSData * data = [NSURLConnection sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
//或者
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setHTTPMethod:@"GET"];
[request setURL:url];
[request setTimeoutInterval:60];
NSURLResponse *response;
//发送同步请求
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
<pre name="code" class="plain">if (error == nil)
{
// 处理数据
}
//异步请求
NSURLConnection connectionWithRequest:request delegate:self];
#pragma mark - NSURLConnection delegate
//数据加载过程中调用
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
}
//数据加载完成后调用
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
}
//数据加载失败后调用
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
}
//或者
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse* respone, NSData* data, NSError* error){}];
[