zoukankan      html  css  js  c++  java
  • 网络编程:get,post请求数据

    http网络编程

    流程
    一.创建一个请求
    1,需要一个NSURL对象
    2,请求课分为GET请求,POST请求,DELETE请求,PUT请求,常用的是GET,POST请求.创建你NSURLRequest的时候 默认的请求方式是GET
    二.建立网络链接 获取数据
    1.使用NSURLConnection类 创建链接,链接可分为同步链接和异步链接
    三.使用数据(比如,对数据及诶西,或者把数据转换成图片)
    1.获得数据之后,要使用数据.如何使用数据,要看是什么数据.无论同步链接还是异步链接,获得数据都使用NSDate存储.

    get请求

    #pragma mark  ---------get请求------
    NSString *str = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx?date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213";
        //Get 请求方式 特点:请求的参数直接跟在URL后面,实现了当前的网址更加完整.使当前的网址更加完整
        //将Str转化为一个url对象
        NSURL *url = [NSURL URLWithString:str];
        //创建一个请求对象,包含要请求的信息,
    //    NSURLRequest *request = [NSURLRequest requestWithURL:url];
        //NSURLRequestCachePolicy 缓存策略枚举类型   NSTimeInterval请求时间间隔 整型
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    
    

    post请求

    #pragma mark  --------POST请求--------
        //post是将URL 和 参数分离的一种请求方式
        NSString *str = @"http://ipad-bjwb.bjd.com.cn/DigitalPublication/publish/Handler/APINewsList.ashx";
        
        NSURL *url = [NSURL URLWithString:str];
        
        //使用 NSMutableURLRequest 创建对象
        //NSURLRequest 是一个不可变的请求,默认执行的是GET请求.也就是说,通过NSURLRequest无法制定请求方式为POST,因为TA是不可变的.
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
        
        //怎么设置分离之后的参数呢?
        [request setHTTPMethod:@"POST"];//告诉外界我的请求是POST请求
        
        //post方式,把参数放在了httpBody里面,而非放在了url里面.
        [request setHTTPBody:[@"date=20131129&startRecord=1&len=5&udid=1234567890&terminalType=Iphone&cid=213" dataUsingEncoding:NSUTF8StringEncoding]];
    

    公用代码部分

    // -----begain 公用部分----------
        //将请求发出去 并且返回了一个NSData,也就是我们的数据
        NSURLResponse *response = nil; //因为是**类型 下同 所以下面写 &response
        NSError *error = nil;
        NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];  //同步连接
        
        //NSOperationQueue 多线程 异步连接的方法
    //    NSData *date = [NSURLConnection sendAsynchronousRequest:request queue:<#(NSOperationQueue *)#> completionHandler:<#^(NSURLResponse *response, NSData *data, NSError *connectionError)handler#>]
        
        NSLog(@"data is %@",data);
        NSLog(@"response is %@",response);
        NSLog(@"error is %@",error);
        
    // -------end--
        //通过之前介绍的Json解析,可以得到我们想要得到的数据
        
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers  error:nil];
        NSArray *array = [dic objectForKey:@"news"];
    
    On the road。。。
  • 相关阅读:
    假期学习2
    假期学习1
    读《需求工程--软件建模和分析》一
    数据清洗
    Mapreduce实例——WordCount
    SEVEN python环境jieba分词的安装 以即热词索引
    SIX Spark Streaming 编程初级实践
    FIVE Spark SQL 编程初级实践
    FOUR spark-shell 交互式编程
    THREE SPAKR
  • 原文地址:https://www.cnblogs.com/ianhao/p/4490615.html
Copyright © 2011-2022 走看看