【原创作品, 欢迎转载,转载请在明显处注明!谢谢。
今天给大家带来一个简单的登陆验证,用的是ASIHttpRequest这个开源类库,使用的方法很简单,从网上下载下来以后,添加到项目中,并添加一下这些框架。
下面上代码
- //
- //
ViewController.h - //
NetDemo - //
- //
Created by zhouhaifeng on 12-6-6. - //
Copyright (c) 2012年 zhouhaifeng. All rights reserved. - //
-
- #import
- #import
"ASIHttpHeaders.h" - #import
"CJSONDeserializer.h" - #import
"tooles.h" - @interface
ViewController : UIViewController - {
-
UITextField *username; -
UITextField *password; -
- }
- @property
(nonatomic,retain) UITextField *username; - @property
(nonatomic,retain) UITextField *password; -
- @end
- //
- //
ViewController.m - //
NetDemo - //
- //
Created by zhouhaifeng on 12-6-6. - //
Copyright (c) 2012年 zhouhaifeng. All rights reserved. - //
-
- #import
"ViewController.h" - #define
HOSTURL @"http://192.168.1.105/NetDemo/index.php"; -
-
- @interface
ViewController () - -(void)
login:(id)sender; - -(void)
GetErr:(ASIHTTPRequest *)request; - -(void)
GetResult:(ASIHTTPRequest *)request; - @end
-
- @implementation
ViewController - @synthesize
username,password; - -
(void)viewDidLoad - {
-
[super viewDidLoad]; -
// Do any additional setup after loading the view, typically from a nib. -
UILabel *txt1 = [[UILabel alloc] initWithFrame:CGRectMake(30,100,70,30)]; -
[txt1 setText:@"用户名"]; -
[txt1 setBackgroundColor:[UIColor clearColor]]; -
[self.view addSubview:txt1]; -
-
UILabel *txt2 = [[UILabel alloc] initWithFrame:CGRectMake(30,140,70,30)]; -
[txt2 setText:@"密 码"]; -
[txt2 setBackgroundColor:[UIColor clearColor]]; -
[self.view addSubview:txt2]; -
-
username = [[UITextField alloc]initWithFrame:CGRectMake(120,100, 150, 30)]; -
[username setBorderStyle:UITextBorderStyleRounded Rect]; -
[self.view addSubview:username]; -
-
password = [[UITextField alloc]initWithFrame:CGRectMake(120,140, 150, 30)]; -
[password setBorderStyle:UITextBorderStyleRounded Rect]; -
[password setSecureTextEntry:YES]; -
[self.view addSubview:password]; -
-
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; -
[btn setTitle:@"提交" forState:UIControlStateNormal]; -
[btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpIns ide]; -
[btn setFrame:CGRectMake(90, 180, 150, 40)]; -
[self.view addSubview:btn]; -
-
-
- }
-
- -(void)
login:(id)sender - {
-
//表单提交前的验证 -
if (username.text == nil||password.text==nil ) { -
[tooles MsgBox:@"用户名或密码不能为空!"]; -
return; -
} -
//隐藏键盘 -
[username resignFirstResponder]; -
[password resignFirstResponder]; -
// -
[tooles showHUD:@"正在登陆...."]; -
NSString *urlstr = HOSTURL; -
NSURL *myurl = [NSURL URLWithString:urlstr]; -
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myurl]; -
//设置表单提交项 -
[request setPostValue:username.text forKey:@"username"]; -
[request setPostValue:username.text forKey:@"password"]; -
[request setDelegate:self]; -
[request setDidFinishSelector:@selector(GetResult:)]; -
[request setDidFailSelector:@selector(GetErr:)]; -
[request startAsynchronous]; -
-
- }
-
-
//获取请求结果 - -
(void)GetResult:(ASIHTTPRequest *)request{ -
-
[tooles removeHUD]; -
NSData *data =[request responseData]; -
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:data error:nil]; -
class="p1">class="s1"> class="s2">//输出接收到的字符串
NSString *str = [NSString stringWithUTF8String:[data bytes]]; NSLog(@"%@",str); //判断是否登陆成功 -
if ([dictionary objectForKey:@"yes"]) { -
[tooles MsgBox:[dictionary objectForKey:@"yes"]]; -
return; -
}else if ([dictionary objectForKey:@"error"] != [NSNull null]) { -
[tooles MsgBox:[dictionary objectForKey:@"error"]]; -
return; -
} -
- }
-
-
//连接错误调用这个函数 - -
(void) GetErr:(ASIHTTPRequest *)request{ -
-
[tooles removeHUD]; -
-
[tooles MsgBox:@"网络错误,连接不到服务器"]; - }
-
- -
(void)viewDidUnload - {
-
[super viewDidUnload]; -
// Release any retained subviews of the main view. - }
-
- -
(BOOL)shouldAutorotateToInterf aceOrientation:(UIInterfaceOrientation)interfaceOrientation - {
-
return (interfaceOrientation != UIInterfaceOrientationPo rtraitUpsideDown); - }
-
- -(void)
dealloc - {
-
[username release]; -
[password release]; -
[super dealloc]; - }
-
- @end