美文网首页
网络数据请求

网络数据请求

作者: 艾克12138 | 来源:发表于2016-06-25 20:56 被阅读26次

    #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

    相关文章

      网友评论

          本文标题:网络数据请求

          本文链接:https://www.haomeiwen.com/subject/umbodttx.html