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; }