网络请求
2014-04-03 19:47
120 查看
一、NSURLConnection-同步请求网络数据
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSLog(@"We are here...");
NSString
*urlAsString =@"http://www.yahoo.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest
requestWithURL:url];
NSURLResponse *response = nil;
NSError *error = nil;
NSLog(@"Firing synchronous urlconnection...");
NSData *data = [NSURLConnection
sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
if ([data length] >
0 && error == nil){
//
同步返回数据-成功
NSLog(@"%lu bytes of data wasreturned.", (unsigned
long)[data
length]);
}else
if([data length] ==
0 && error == nil){
//
同步返回数据-成功
NSLog(@"No data was returned.");
}else
if(error != nil){
//失败
NSLog(@"Error happened = %@", error);
NSLog(@"We are done.");
}
}
二、NSURLConnection-异步请求网络数据
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSString
*urlAsString =@"http://www.baidu.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSURLRequest *urlRequest =[NSURLRequest
requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:30.0f];
NSOperationQueue
*queue = [[NSOperationQueue alloc]init];
[NSURLConnectionsendAsynchronousRequest:urlRequest
queue:queue
completionHandler:^(NSURLResponse *response,
NSData *data, NSError *error) {
if ([datalength] >0 && error ==
nil){
NSString *html = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"HTML =
%@", html);
}elseif ([data
length] == 0 && error ==
nil){
NSLog(@"Nothing
was downloaded.");
}elseif (error !=
nil){
NSLog(@"Error
happened = %@", error);
}
}];
NSLog(@"main thread!");
}
三、NSMutableURLRequest-可变网络请求
有时候,我们希望分来来进行配置网络请求,我们可以用NSMutableURLRequest类
NSString *urlAsString =@"http://www.apple.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSMutableURLRequest *urlRequest =[[NSMutableURLRequest
alloc]init];
[urlRequestsetTimeoutInterval:30.0f];
[urlRequest
setURL:url];
四、GET方式网络请求-NSMutableURLRequest
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSString
*urlAsString =@"http://www.My_URL_Address.php";
//
为GET方式添加参数
urlAsString = [urlAsStringstringByAppendingString:@"?param1=First"];
urlAsString = [urlAsStringstringByAppendingString:@"¶m2=Second"];
NSURL *url = [NSURL
URLWithString:urlAsString];
NSMutableURLRequest
*urlRequest = [NSMutableURLRequestrequestWithURL:url];
[urlRequest
setTimeoutInterval:30.0f];
[urlRequest
setHTTPMethod:@"GET"];
NSOperationQueue
*queue = [[NSOperationQueue alloc]init];
[NSURLConnectionsendAsynchronousRequest:urlRequest
queue:queue
completionHandler:^(NSURLResponse *response,NSData *data,
NSError *error) {
if ([datalength] >0 && error ==
nil){
NSString *html = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"HTML =
%@", html);
}elseif ([data
length] == 0 && error ==
nil){
NSLog(@"Nothing
was downloaded.");
}elseif (error !=
nil){
NSLog(@"Error
happened = %@", error);
}
}];
}
五、POST方式网络请求-NSMutableURLRequest
其实很简单,只要设置请求方式为:POST,并且传递请求数据就可以了。
[urlRequest
setHTTPMethod:@"POST"];
NSString
*body=@"bodyParam1=BodyValue1&bodyParam2=BodyValue2";
[urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSLog(@"We are here...");
NSString
*urlAsString =@"http://www.yahoo.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSURLRequest *urlRequest = [NSURLRequest
requestWithURL:url];
NSURLResponse *response = nil;
NSError *error = nil;
NSLog(@"Firing synchronous urlconnection...");
NSData *data = [NSURLConnection
sendSynchronousRequest:urlRequest
returningResponse:&response
error:&error];
if ([data length] >
0 && error == nil){
//
同步返回数据-成功
NSLog(@"%lu bytes of data wasreturned.", (unsigned
long)[data
length]);
}else
if([data length] ==
0 && error == nil){
//
同步返回数据-成功
NSLog(@"No data was returned.");
}else
if(error != nil){
//失败
NSLog(@"Error happened = %@", error);
NSLog(@"We are done.");
}
}
二、NSURLConnection-异步请求网络数据
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSString
*urlAsString =@"http://www.baidu.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSURLRequest *urlRequest =[NSURLRequest
requestWithURL:url
cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData
timeoutInterval:30.0f];
NSOperationQueue
*queue = [[NSOperationQueue alloc]init];
[NSURLConnectionsendAsynchronousRequest:urlRequest
queue:queue
completionHandler:^(NSURLResponse *response,
NSData *data, NSError *error) {
if ([datalength] >0 && error ==
nil){
NSString *html = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"HTML =
%@", html);
}elseif ([data
length] == 0 && error ==
nil){
NSLog(@"Nothing
was downloaded.");
}elseif (error !=
nil){
NSLog(@"Error
happened = %@", error);
}
}];
NSLog(@"main thread!");
}
三、NSMutableURLRequest-可变网络请求
有时候,我们希望分来来进行配置网络请求,我们可以用NSMutableURLRequest类
NSString *urlAsString =@"http://www.apple.com";
NSURL *url = [NSURL
URLWithString:urlAsString];
NSMutableURLRequest *urlRequest =[[NSMutableURLRequest
alloc]init];
[urlRequestsetTimeoutInterval:30.0f];
[urlRequest
setURL:url];
四、GET方式网络请求-NSMutableURLRequest
-(void)viewDidAppear:(BOOL)animated{
[super
viewDidAppear:animated];
NSString
*urlAsString =@"http://www.My_URL_Address.php";
//
为GET方式添加参数
urlAsString = [urlAsStringstringByAppendingString:@"?param1=First"];
urlAsString = [urlAsStringstringByAppendingString:@"¶m2=Second"];
NSURL *url = [NSURL
URLWithString:urlAsString];
NSMutableURLRequest
*urlRequest = [NSMutableURLRequestrequestWithURL:url];
[urlRequest
setTimeoutInterval:30.0f];
[urlRequest
setHTTPMethod:@"GET"];
NSOperationQueue
*queue = [[NSOperationQueue alloc]init];
[NSURLConnectionsendAsynchronousRequest:urlRequest
queue:queue
completionHandler:^(NSURLResponse *response,NSData *data,
NSError *error) {
if ([datalength] >0 && error ==
nil){
NSString *html = [[NSString
alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"HTML =
%@", html);
}elseif ([data
length] == 0 && error ==
nil){
NSLog(@"Nothing
was downloaded.");
}elseif (error !=
nil){
NSLog(@"Error
happened = %@", error);
}
}];
}
五、POST方式网络请求-NSMutableURLRequest
其实很简单,只要设置请求方式为:POST,并且传递请求数据就可以了。
[urlRequest
setHTTPMethod:@"POST"];
NSString
*body=@"bodyParam1=BodyValue1&bodyParam2=BodyValue2";
[urlRequest setHTTPBody:[body dataUsingEncoding:NSUTF8StringEncoding]];
相关文章推荐
- AFNetworking 网络请求
- Reactive Cocoa 处理多个网络请求的问题
- 从网络请求数据添加到数据库
- iOS 多个网络请求并行/并发处理
- Android 搭建MVP+Retrofit+RxJava网络请求框架
- iOS9之后 xcode网络数据请求设置
- xutils网络数据请求,fastjson解析数据
- 使用AFNetWorking和ReactiveCocoa对网络请求进行封装(仿煎蛋iOS)(3)
- HTTPS网络请求时plist文件的设置
- swift开发网络篇 - post 请求
- Okhttp使用简析——Android网络请求框架(一)
- iOS 10 的坑:新机首次安装 app,请求网络权限“是否允许使用数据”
- post请求网络数据,返回给主线程更新UI实例
- iOS中发起https的网络请求
- android开发:网络编程之post与get请求区别?
- 数组和字典的writeToFile方法——在项目开发中处理网络数据的时候,可以把请求获得的网络数据保存为plist文件,这样更方便开发
- 请求网络 获取数据格式
- ios 网络请求问题
- [QT开发]网络编程中,发送请求成功,无法接收回信