///
.h文件
#import <Foundation/Foundation.h>
#import "ASIFormDataRequest.h"
@protocol NetWorkdelegate <NSObject>
- (void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback;
@interface JSNetWork : NSObject <ASIHTTPRequestDelegate>
+ (JSNetWork *)shareNetWork;
- (void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate;
.m文件
@implementation JSNetWork
+ (JSNetWork *)shareNetWork
{
static dispatch_once_t onceToken;
static JSNetWork *netWork = nil;
dispatch_once(&onceToken, ^{
netWork = [[JSNetWork alloc] init];
});
return netWork;
}
#pragma mark -request
- (void)JsNetWordWithConnectId:(int)connectid Body:(NSString *)body PostBody:(NSString *)PostBody Delegate:(id<NetWorkdelegate>)delegate
{
if (![self Isconnect])
{
UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:nil message:@"not work" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
[alertview show];
[alertview release];
return;
}
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:body]];
request.timeOutSeconds = 30;
request.delegate = self;
request.requestMethod = @"POST";
NSArray *Bodyarry = [PostBody componentsSeparatedByString:@"&"];
for (NSString *tmp in Bodyarry)
{
NSArray *temparrary = [tmp componentsSeparatedByString:@"="];
[request setPostValue:temparrary[1] forKey:temparrary[0]];
}
NSString *cid = [NSString stringWithFormat:@"%zi",connectid];
NSDictionary *dic = @{@"connectid":cid,@"delegate":delegate};
[request setUserInfo:dic];
[request startAsynchronous];
}
- (void)requestFinished:(ASIHTTPRequest *)request
{
NSDictionary *userinfo = request.userInfo;
int connectid = [userinfo[@"connectid"] intValue];
id<NetWorkdelegate> delegate = userinfo[@"delegate"];
NSString *str = [request responseString];
[delegate NetWorkwithConnectId:connectid backstring:str];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
}
- (BOOL)Isconnect
{
BOOL iscon = NO;
Reachability *r = [Reachability reachabilityWithHostName:@"www.baidu.com"];
switch ([r currentReachabilityStatus])
{
case NotReachable:
{
NSLog(@"not network");
iscon = NO;
}
break;
case ReachableViaWiFi:
{
NSLog(@"wifi");
iscon = YES;
}
break;
case ReachableViaWWAN:
{
NSLog(@"3g");
iscon = YES;
}
break;
default:
break;
}
return iscon;
}
@end
///
使用文件
- (void)viewDidLoad
{
[super viewDidLoad];
[[JSNetWork shareNetWork] JsNetWordWithConnectId:100 Body:@"http://www.baidu.com" PostBody:nil Delegate:self];
// Do any additional setup after loading the view, typically from a nib.
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"1.plist"];
NSString *str = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
if(str.length > 0)
{
[self NetWorkwithConnectId:100 backstring:str];
}
}
- (void)dealloc
{
[_txt release];
[super dealloc];
}
- (void)NetWorkwithConnectId:(int)connectid backstring:(NSString *)aback
{
self.txt.text = aback;
[self Save:aback];
}
- (void)Save:(NSString *)str
{
NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
path = [path stringByAppendingPathComponent:@"1.plist"];
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
}
///