zoukankan      html  css  js  c++  java
  • iOS.访问 Web Service.异步GET请求方法

    #import <UIKit/UIKit.h>
    #import "T20140628024750NSNumber+Message.h"
    #import "T20140628024750NSString+URLEncoding.h"
    
    @interface T20140628024750ViewController : UITableViewController<NSURLConnectionDelegate>
    
    @property (nonatomic,strong) NSMutableArray *listData;
    
    //接收从服务器返回数据。
    @property (strong,nonatomic) NSMutableData *datas;
    
    // 查询所有
    -(void)findAll;
    
    @end
    #import "T20140628024750ViewController.h"
    
    @interface T20140628024750ViewController ()
    
    @end
    
    @implementation T20140628024750ViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        
        // 1、初始化数据
        [self findAll];
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    #pragma mark table dataSource
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return self.listData.count;
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        // 1、初始化重用Cell
        static NSString *reUseCell = @"reUseCell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reUseCell];
        if (cell == nil) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:reUseCell];
        }
        
        // 2、配置重用Cell数据
        NSMutableDictionary*  dict = self.listData[indexPath.row];
        cell.textLabel.text = [dict objectForKey:@"Content"];
        cell.detailTextLabel.text = [dict objectForKey:@"CDate"];
        return cell;
    }
    -(void)findAll
    {
        NSString *strURL = [[NSString alloc] initWithFormat:@"http://127.0.0.1:8080/kujizu/test01.html"];
        NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];
        NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
        
        if (connection) {
            _datas = [NSMutableData new];
        }
    }
    #pragma mark- NSURLConnection 回调方法
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
        [_datas appendData:data];
    }
    
    
    -(void) connection:(NSURLConnection *)connection didFailWithError: (NSError *)error {
        
        NSLog(@"%@",[error localizedDescription]);
    }
    
    - (void) connectionDidFinishLoading: (NSURLConnection*) connection {
        NSLog(@"请求完成...");
        NSDictionary* resDict = [NSJSONSerialization JSONObjectWithData:_datas options:NSJSONReadingAllowFragments error:nil];
        
        if (resDict == nil) {
            
            self.listData = [[NSMutableArray alloc] init];
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"错误信息" message:@"没有数据。" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alertView show];
        }else{
            
            NSNumber *resultCodeObj = [resDict objectForKey:@"ResultCode"];
            if ([resultCodeObj integerValue] >=0){
                
                self.listData = [resDict objectForKey:@"Record"];
                [self.tableView reloadData];
            } else {
                
                NSString *errorStr = [resultCodeObj errorMessage];
                UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"错误信息" message:errorStr delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
                [alertView show];
            }
        }
        
    }
    @end
  • 相关阅读:
    JAVA中线程同步的方法(4种)汇总
    java
    指定的元素已经是另一个元素的逻辑子元素。请先将其断开连接。(解决问题总结)
    无法将类型为“System.Windows.Controls.SelectedItemCollection”的对象强制转换为类型“System.Collections.Generic.IList`1
    foreach---集合已修改;可能无法执行枚举操作。
    WPF_View中控件使用单例ViewModel
    判断s2是否能够被通过s1做循环移位(rotate)得到的字符串是否包含
    多列转1列 SqlServer 实现oracle10g的 wmsys.wm_concat()--for xml path('')
    异步对象(XMLHttpRequest)的帮助脚本
    在vs2010使用EF出现CS0012: 类型“System.Data.Objects.DataClasses.EntityObject”在未被引用的程序集中定义
  • 原文地址:https://www.cnblogs.com/cqchen/p/3817563.html
Copyright © 2011-2022 走看看