网络数据请求

2016-06-25  本文已影响26人  艾克12138

#import "ViewController.h"

@interface ViewController ()//用来拼接data

@property(nonatomic,strong)NSMutableData *totadata;

//storybod的四个button

- (IBAction)getaction:(UIButton *)sender;

- (IBAction)postaction:(UIButton *)sender;

- (IBAction)delegateaction:(UIButton *)sender;

- (IBAction)blockaction:(UIButton *)sender;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma mark

//建立同步请求  get请求

- (IBAction)getaction:(UIButton *)sender {

//1.封装网址对象

NSString *urlstring=@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSURL *url =[NSURL URLWithString:urlstring];

//2.设置网络请求

//    NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

//    [request setHTTPMethod:@"GET"];//设置网络请求方式 get或者post 默认是GET (如果不设置就是默认)

NSURLRequest *request =[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

//3.连接服务器发送请求

NSData *date =[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *resultstring =[[NSString alloc]initWithData:date encoding:NSUTF8StringEncoding];

NSLog(@"%@",resultstring);

/*  NSURLRequest 初始化方法第一个参数:请求访问路径的,第二个参数缓存协议,第三个参数网络请求超时时间(s秒)

其中缓存协议是个枚举类型

NSURLRequestUseProtocolCachePolicy = 0,          (基础策略)

NSURLRequestReloadIgnoringLocalCacheData = 1,    (忽略本地缓存)

NSURLRequestReturnCacheDataElseLoad = 2,        (首先使用缓存,如果没有再去请求)

NSURLRequestReturnCacheDataDontLoad = 3,        (使用本地缓存也不去下载,如果没有本地缓存,也不去再请求.多用于离线操作)

NSURLRequestReloadIgnoringLocalAndRemoteCacheData = 4, // Unimplemented(无视任何缓存策略,无论是本地还是远程的,都要去请求数据)

NSURLRequestReloadIgnoringCacheData = NSURLRequestReloadIgnoringLocalCacheData,

NSURLRequestReloadRevalidatingCacheData=5(如果本地缓存是有效的则不下载,否则都是从服务器重新下载)*/

}

#pragma mark  post

//建立同步post请求

- (IBAction)postaction:(UIButton *)sender {

//1.封装网址对象

NSString *urlstring =@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";

NSURL *url =[NSURL URLWithString:urlstring];

//2.设置网络请求post

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];

//3.设置参数

NSString *poststring =@"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSData *postdata =[poststring dataUsingEncoding:NSUTF8StringEncoding];

[request setHTTPBody:postdata];

//4.建立同步请求,请求数据

NSData *data =[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

NSString *resultstring =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",resultstring);

}

#pragma mark ----nsurlconectiondatadelegate-----

//服务器开始响应,准备开始返回数据

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{

}

//客户端接收数据

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{

self.totadata =[NSMutableData data];

//可变data的拼接方法

[self.totadata appendData:data];

}

//数据接收完成

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

NSString *string  =[[NSString alloc]initWithData:self.totadata encoding:NSUTF8StringEncoding];

NSLog(@"%@",string);

}

//错误提示,连接失败

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{

NSLog(@"%@",error);//一般是网络问题或者是服务器问题造成的

}

//代理实现异步

- (IBAction)delegateaction:(UIButton *)sender {

NSString *urlstring =@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSURL *url =[NSURL URLWithString:urlstring];

//2.

//NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

NSURLRequest *request =[NSURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

//3建立同步连接

NSURLConnection *connection=  [NSURLConnection  connectionWithRequest:request delegate:self];

}

//  异步请求

- (IBAction)blockaction:(UIButton *)sender {

NSString *urlstring=@"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";

NSURL *url =[NSURL URLWithString:urlstring];

//2.

NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:url];

//3.

[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) {

NSString *resultstring =[[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

NSLog(@"%@",resultstring);

}];

}

@end

上一篇下一篇

猜你喜欢

热点阅读