iOS利用ASIHTTPRequest 實現一個簡單的登陸驗證

openkk 12年前發布 | 56K 次閱讀 IOS iOS開發 移動開發

今天給大家帶來一個簡單的登陸驗證,用的是ASIHttpRequest 這個開源類庫,使用的方法很簡單,從網上下載下來以后,添加到項目中,并添加一下這些框架。iOS利用ASIHTTPRequest 實現一個簡單的登陸驗證 iOS利用ASIHTTPRequest 實現一個簡單的登陸驗證 iOS利用ASIHTTPRequest 實現一個簡單的登陸驗證


下面上代碼

//
//  ViewController.h
//  NetDemo
//
//  Created by zhouhaifeng on 12-6-6.
//  Copyright (c) 2012年 zhouhaifeng. All rights reserved.
//

import <UIKIT uikit.h="">

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</asihttprequestdelegate></uikit></pre>

//
//  ViewController.m
//  NetDemo
//
//  Created by zhouhaifeng on 12-6-6.
//  Copyright (c) 2012年 zhouhaifeng. All rights reserved.
//

import "ViewController.h"

define HOSTURL @"

@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:UITextBorderStyleRoundedRect]; [self.view addSubview:username];

    password = [[UITextField alloc]initWithFrame:CGRectMake(120,140, 150, 30)]; [password setBorderStyle:UITextBorderStyleRoundedRect]; [password setSecureTextEntry:YES]; [self.view addSubview:password];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; [btn setTitle:@"提交" forState:UIControlStateNormal]; [btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside]; [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];

      //輸出接收到的字符串

    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)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); }

-(void) dealloc { [username release]; [password release]; [super dealloc]; }

@end</pre>


php端驗證的代碼,隨便寫了下,后面就是返回一個JSON格式的字符串。
<?php  
        if($_POST['username'] == "admin" &&  $_POST['password'] == "admin")  
        {  
            echo '{"yes":"登陸成功"}';  
        }else  
        {  
            echo '{"error":"用戶名或密碼錯誤"}';  
        };  
    ?>  

原文地址:
http://blog.csdn.net/toss156/article/details/7638529

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!