zoukankan      html  css  js  c++  java
  • iOS.访问 Web Service.MKNetworkKit_GET

    #import <UIKit/UIKit.h>
    #import "T20140628025200NSNumber+Message.h"
    #import "T20140628025200NSString+URLEncoding.h"
    #import "MKNetworkEngine.h"
    #import "MKNetworkOperation.h"
    
    @interface T20140628025200ViewController : UITableViewController
    
    @property (nonatomic,strong) NSMutableArray *listData;
    
    //接收从服务器返回数据。
    @property (strong,nonatomic) NSMutableData *datas;
    
    // 查询所有
    -(void)findAll;
    
    @end
    #import "T20140628025200ViewController.h"
    
    @interface T20140628025200ViewController ()
    
    @end
    
    @implementation T20140628025200ViewController
    
    - (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 *path = [[NSString alloc] initWithFormat:@"/kujizu/test01.html"];
        
        MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"127.0.0.1:8080" customHeaderFields:nil];
        MKNetworkOperation *op = [engine operationWithPath:path];
        
        
        [op addCompletionHandler:^(MKNetworkOperation *operation) {
            
            NSLog(@"responseData : %@", [operation responseString]);
            NSData *data  = [operation responseData];
            NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
            if (data == 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];
                }
            }
            
        } errorHandler:^(MKNetworkOperation *errorOp, NSError* err) {
            NSLog(@"MKNetwork请求错误 : %@", [err localizedDescription]);
        }];
        [engine enqueueOperation:op];
    }
    @end
  • 相关阅读:
    Angular总结一:环境搭建
    适应移动端的地址四级(省市区街道)联动选择
    插入换行符
    自定义input[type="checkbox"]的样式
    使用zepto实现QQ消息左滑删除效果
    windows 下更新 npm 和 node
    [attribute |= value] 与 [attribute ^= value],[attribute ~= value] 与 [attribute *= value] 的联系与区别
    小程序父子组件onLoad和Created之间的问题
    小程序行内元素且有border的情况下,根据文字宽度自动调节元素宽度
    块级元素水平居中
  • 原文地址:https://www.cnblogs.com/cqchen/p/3819359.html
Copyright © 2011-2022 走看看