iOS.访问 Web Service.同步GET请求方法

1、字符串转换为URL字符串NSString分类

#import <Foundation/Foundation.h>

@interface NSString (URLEncoding)


-(NSString *)URLEncodedString;
-(NSString *)URLDecodedString;


@end
#import "T20140628013418NSString+URLEncoding.h"

@implementation NSString (URLEncoding)


- (NSString *)URLEncodedString
{
    NSString *result = ( NSString *)
    CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
                                                              (CFStringRef)self,
                                                              NULL,
                                                              CFSTR("!*();+$,%#[] "),
                                                              kCFStringEncodingUTF8));
    return result;
}

- (NSString*)URLDecodedString
{
    NSString *result = ( NSString *)
    CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
                                                                              (CFStringRef)self,
                                                                              CFSTR(""),
                                                                              kCFStringEncodingUTF8));
    return result;
}


@end

2、错误提示NSNumber分类

#import <Foundation/Foundation.h>

@interface NSNumber (Message)


-(NSString *)errorMessage;

@end
#import "T20140628013418NSNumber+Message.h"

@implementation NSNumber (Message)

-(NSString *)errorMessage
{
    /*  -7 没有数据。
     *  -6 日期没有输入。
     *  -5 内容没有输入。
     *  -4 ID没有输入。
     *  -3 据访问失败。
     *    -2 您的账号最多能插入10条数据。
     *    -1 用户不存在。
     *    0 查询成功
     *    1 修改成功
     */
    
    NSString *errorStr = @"";
    
    switch ([self integerValue]) {
        case -7:
            errorStr = @"没有数据。";
            break;
        case -6:
            errorStr = @"日期没有输入。";
            break;
        case -5:
            errorStr = @"内容没有输入。";
            break;
        case -4:
            errorStr = @"ID没有输入。";
            break;
        case -3:
            errorStr = @"数据访问失败。";
            break;
        case -2:
            errorStr = @"您的账号最多能插入10条数据。";
            break;
        case -1:
            errorStr = @"用户不存在";
        default:
            break;
    }
    
    return errorStr;
}
@end

3、获得url对象

    NSString *strURL = [[NSString alloc] initWithFormat:@"http://127.0.0.1:8080/xxx/test01.html"];
    NSURL *url = [NSURL URLWithString:[strURL URLEncodedString]];

 

4、同步get请求

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    NSData *data  = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];

5、-(NSMutableArray *)findAll

-(NSMutableArray *)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];
    NSData *data  = [NSURLConnection sendSynchronousRequest:request returningResponse:nil 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{
        
        NSDictionary *resDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil];
        
        NSNumber *resultCodeObj = [resDict objectForKey:@"ResultCode"];
        if ([resultCodeObj integerValue] >=0){
            
            self.listData = [resDict objectForKey:@"Record"];
        } else {
            
            NSString *errorStr = [resultCodeObj errorMessage];
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"错误信息" message:errorStr delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alertView show];
        }
    }
    return self.listData;
}

 

posted @ 2014-06-29 02:22  so_tm_what  阅读(414)  评论(0编辑  收藏  举报