首页 > 代码库 > iOS.访问 Web Service.异步POST请求方法

iOS.访问 Web Service.异步POST请求方法

#import <UIKit/UIKit.h>#import "T20140628024917NSNumber+Message.h"#import "T20140628024917NSString+URLEncoding.h"@interface T20140628024917ViewController : UITableViewController<NSURLConnectionDelegate>@property (nonatomic,strong) NSMutableArray *listData;//接收从服务器返回数据。@property (strong,nonatomic) NSMutableData *datas;// 查询所有-(void)findAll;@end
#import "T20140628024917ViewController.h"@interface T20140628024917ViewController ()@end@implementation T20140628024917ViewController- (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]];    NSString *post = [NSString stringWithFormat:@"email=%@&type=%@&action=%@", @"<你的iosbook1.com用户邮箱>",@"JSON",@"query"];    NSData *postData =http://www.mamicode.com/ [post dataUsingEncoding:NSUTF8StringEncoding];        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];    [request setHTTPMethod:@"POST"];    [request setHTTPBody:postData];        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