渣蜀黍 - iOS个人笔记(二)_网络请求与数据处理

1.发送post请求

//发送post 请求
+(NSString*)sendPostRequest:(NSString *)postpath :(NSMutableString *)postParameter{
    //postpath==post地址,postparameter==post参数
    NSString *action=postpath;
    NSURL *url2 = [NSURL URLWithString:action];
    //第二步,创建请求
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL:url2
                                                               cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];
    [request setHTTPMethod:@"POST"];//设置请求方式为POST,默认为GET
    
    NSString *str = postParameter;//设置参数
    
    NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
    
    [request setHTTPBody:data];
    
    //第三步,连接服务器
    
    NSData *received = [NSURLConnection sendSynchronousRequest:request
                                             returningResponse:nil error:nil];
    
    NSString *str1 = [[NSString alloc]initWithData:received encoding:NSUTF8StringEncoding];
    
    return str1;
}


2.下载文件 

//下载文件并保存
+(void)downloadFile:(NSString *)urlstr : (NSString *)savePath{
    NSURL *url=[NSURL URLWithString:urlstr];
    NSURLRequest *request=[NSURLRequest requestWithURL:url];
    NSError *error=nil;
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&error];
    if([data length]>0)
    {
        NSLog(@"下载成功");
        if([data writeToFile:savePath atomically:YES]){
            NSLog(@"保存成功");
        }else{
            NSLog(@"保存失败");
        }
    }
    else
    {
        NSLog(@"下载失败,失败原因:%@",error);
       
    }
    
}


3.解析JSON数据,  采用JSONKit 库


解析以下的json数据。

{"page":"1","total":"3","records":"24","product_list":[{"product_id":"29","product_name":"\u4e2d\u878d\u8d44\u4ea7-\u878d\u6e561\u53f7","term":"12","revenue_rate_min":"9.00","revenue_rate_max":"9.50","investment_domain_name":"\u57fa\u7840\u8bbe\u65bd\u7c7b","payment_name":"\u534a\u5e74\u4ed8\u606f","region_name":"\u6c5f\u6d59\u6caa","fee":null,"progress":"0","status":"1","recommend_flag":"1","hot_flag":"0"},{"product_id":"28","product_name":"\u4e2d\u878d\u4fe1\u6258-\u878d\u65b0\u53d1\u5c551\u53f7","term":"12","revenue_rate_min":"10.00","revenue_rate_max":"10.30","investment_domain_name":"\u91d1\u878d\u5e02\u573a\u7c7b","payment_name":"\u6309\u5e74\u4ed8\u606f","region_name":"\u5176\u4ed6\u5730\u533a","fee":null,"progress":"0","status":"2","recommend_flag":"1","hot_flag":"1"},{"product_id":"27","product_name":"\u8d22\u901a\u8d44\u4ea7-\u798f\u665f\u94b1\u9686\u5b66\u5e9c","term":"12","revenue_rate_min":"10.50","revenue_rate_max":"11.50","investment_domain_name":"\u623f\u5730\u4ea7\u7c7b","payment_name":"\u534a\u5e74\u4ed8\u606f","region_name":"\u73e0\u4e09\u89d2","fee":null,"progress":"0","status":"2","recommend_flag":"1","hot_flag":"1"}],"code":"0"}

dispatch_async(dispatch_get_global_queue(0, 0), ^{
        
        NSString *url=myDelegate.cp_list;
        NSMutableString *postParameter2= [NSMutableString string];
        [postParameter2 appendString:@"recommend_flag=1"];
        [postParameter2 appendString:@"&page="];
        [postParameter2 appendString:@"1"];
        NSString *response=[self sendPostRequest:url :postParameter2];
        //  NSLog(@"_jsonContent==%@",response);
        
        NSMutableDictionary *data = [response objectFromJSONStringWithParseOptions:JKParseOptionLooseUnicode];
        dispatch_async(dispatch_get_main_queue(), ^{
            
            self.listData=[data objectForKey:@"product_list"];
            NSLog(@"self.listdata=%lu",(unsigned long)self.listData.count);
            [self.tableView reloadData];
              [self.tableView headerEndRefreshing];
        });
    });

NSMutableDictionary * dict = self.listData[0];//json数据中有多组数据,所以取product_list的一个数组
NSString *jsonStr1=[dict objectForKey:@"product_name"];
NSString *jsonStr2=[dict objectForKey:@"term"];
NSString *jsonStr3=[dict objectForKey:@"revenue_rate_min"];
NSString *jsonStr4=[dict objectForKey:@"revenue_rate_max"];
NSString *jsonStr5=[dict objectForKey:@"status"];
NSString *jsonStr6=[dict objectForKey:@"investment_domain_name"];
NSString *jsonStr7=[dict objectForKey:@"payment_name"];
NSString *jsonStr8=[dict objectForKey:@"region_name"];
//假如整个json就是一个数组
 NSDictionary *data = [response objectFromJSONString];
[data objectForKey:@"product_url"];
//直接取值就行了
====================================================================================================

个人观点,有不同意见可一起交流

By:渣蜀黍


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值