zoukankan      html  css  js  c++  java
  • 网络请求数据(同步POST,异步POST)

    //同步POST
    -(void)synPost{
        //获取URL接口,不含参数
        NSString *str = @"http://www.haninfo.cc:2060/Login/LoginData.asmx/Login";
        //转码---拼接方法,为避免参数是汉字时,打印结果不显示汉字
        str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
        NSURL *url = [NSURL URLWithString:str];
       
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10];
       
        //post方式的参数封装
        NSString *dataStr = [NSString stringWithFormat:@"sLogin=%@&sVerifyCode=%@&sPadId=%@",@"yyj",@"",@""];
        //将参数列表转换成data
        NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
        //设置参数体
        [request setHTTPBody:data];
        //设置请求方式
        [request setHTTPMethod:@"POST"];
       
        //发送请求
        NSData *responData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
        //解析
        id obj = [NSJSONSerialization JSONObjectWithData:responData options:NSJSONReadingAllowFragments error:nil];
        NSLog(@"%@",obj);
       
    }
    =====================================================
    //异步POST
     
    -(void)asynPOST{
        NSString *str = @"http://www.haninfo.cc:2060/Login/LoginData.asmx/Login";
       
        str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];//把汉字转换成字符串
        NSURL *url = [NSURL URLWithString:str];
       
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:10];
       
        //post方式的参数封装
        NSString *dataStr = [NSString stringWithFormat:@"sLogin=%@&sVerifyCode=%@&sPadId=%@",@"yyj",@"",@""];
        //将参数列表转换成data
        NSData *data = [dataStr dataUsingEncoding:NSUTF8StringEncoding];
        //设置参数体
        [request setHTTPBody:data];
        //设置请求方式
        [request setHTTPMethod:@"POST"];
        
    //方法一:系统封装好的(不在需要代理方法)
        [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            NSLog(@"%@",dic);
        }];
     
    //方法二:需要代理方法
        [NSURLConnection connectionWithRequest:request delegate:self];
    }

    -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{
        _muData = [NSMutableData data];
    }

    -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
       
        [_muData appendData:data];
    }

    -(void)connectionDidFinishLoading:(NSURLConnection *)connection{
    //解析
    }

    -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
        //连接服务器失败
        NSLog(@"错误信息:%@",error);
    }
  • 相关阅读:
    Item 16: 让const成员函数做到线程安全
    学习张鑫旭大神元素抛物线运动插件
    js根据浏览器对css3移动的支持,选择元素移动方式
    如何在图片加载完成前获取到图片宽高
    JavaScript和SVG实现点击连线
    多层级叠加问题
    闭包应用
    展示触摸屏网页打包成桌面应用(nw.js)
    获取鼠标坐标
    常用文档
  • 原文地址:https://www.cnblogs.com/yibadao/p/5022775.html
Copyright © 2011-2022 走看看