【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证

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

今天给大家带来一个简单的登陆验证,用的是ASIHttpRequest 这个开源类库,使用的方法很简单,从网上下载下来以后,添加到项目中,并添加一下这些框架。


下面上代码

[cpp] view
plain
copy

  1. //  
  2. //  ViewController.h  
  3. //  NetDemo  
  4. //  
  5. //  Created by zhouhaifeng on 12-6-6.  
  6. //  Copyright (c) 2012年 zhouhaifeng. All rights reserved.  
  7. //  
  8.   
  9. #import <UIKit/UIKit.h>  
  10. #import "ASIHttpHeaders.h"  
  11. #import "CJSONDeserializer.h"  
  12. #import "tooles.h"  
  13. @interface ViewController : UIViewController<ASIHTTPRequestDelegate>  
  14. {  
  15.     UITextField *username;  
  16.     UITextField *password;  
  17.   
  18. }  
  19. @property (nonatomic,retain) UITextField *username;  
  20. @property (nonatomic,retain) UITextField *password;  
  21.   
  22. @end  

[cpp] view
plain
copy

  1. //  
  2. //  ViewController.m  
  3. //  NetDemo  
  4. //  
  5. //  Created by zhouhaifeng on 12-6-6.  
  6. //  Copyright (c) 2012年 zhouhaifeng. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10. #define HOSTURL @"http://192.168.1.105/NetDemo/index.php";  
  11.   
  12.   
  13. @interface ViewController ()  
  14. -(void) login:(id)sender;  
  15. -(void) GetErr:(ASIHTTPRequest *)request;  
  16. -(void) GetResult:(ASIHTTPRequest *)request;  
  17. @end  
  18.   
  19. @implementation ViewController  
  20. @synthesize username,password;  
  21. - (void)viewDidLoad  
  22. {  
  23.     [super viewDidLoad];  
  24.     // Do any additional setup after loading the view, typically from a nib.  
  25.     UILabel *txt1 = [[UILabel alloc] initWithFrame:CGRectMake(30,100,70,30)];  
  26.     [txt1 setText:@"用户名"];  
  27.     [txt1 setBackgroundColor:[UIColor clearColor]];  
  28.     [self.view addSubview:txt1];  
  29.       
  30.     UILabel *txt2 = [[UILabel alloc] initWithFrame:CGRectMake(30,140,70,30)];  
  31.     [txt2 setText:@"密   码"];  
  32.     [txt2 setBackgroundColor:[UIColor clearColor]];  
  33.     [self.view addSubview:txt2];  
  34.       
  35.     username = [[UITextField alloc]initWithFrame:CGRectMake(120,100, 150, 30)];  
  36.     [username setBorderStyle:UITextBorderStyleRoundedRect];  
  37.     [self.view addSubview:username];  
  38.       
  39.     password = [[UITextField alloc]initWithFrame:CGRectMake(120,140, 150, 30)];  
  40.     [password setBorderStyle:UITextBorderStyleRoundedRect];  
  41.     [password setSecureTextEntry:YES];  
  42.     [self.view addSubview:password];  
  43.       
  44.     UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];  
  45.     [btn setTitle:@"提交" forState:UIControlStateNormal];  
  46.     [btn addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];  
  47.     [btn setFrame:CGRectMake(90, 180, 150, 40)];  
  48.     [self.view addSubview:btn];  
  49.       
  50.   
  51.       
  52. }  
  53.   
  54. -(void) login:(id)sender  
  55. {  
  56.     //表单提交前的验证  
  57.     if (username.text == nil||password.text==nil ) {  
  58.         [tooles MsgBox:@"用户名或密码不能为空!"];  
  59.         return;  
  60.     }  
  61.     //隐藏键盘  
  62.     [username resignFirstResponder];  
  63.     [password resignFirstResponder];  
  64.     //  
  65.     [tooles showHUD:@"正在登陆...."];  
  66.     NSString *urlstr = HOSTURL;  
  67.     NSURL *myurl = [NSURL URLWithString:urlstr];  
  68.     ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:myurl];  
  69.     //设置表单提交项  
  70.     [request setPostValue:username.text forKey:@"username"];      
  71.     [request setPostValue:username.text forKey:@"password"];  
  72.     [request setDelegate:self];  
  73.     [request setDidFinishSelector:@selector(GetResult:)];  
  74.     [request setDidFailSelector:@selector(GetErr:)];  
  75.     [request startAsynchronous];  
  76.       
  77.       
  78. }  
  79.   
  80.    //获取请求结果  
  81. - (void)GetResult:(ASIHTTPRequest *)request{      
  82.       
  83.     [tooles removeHUD];  
  84.     NSData *data =[request responseData];  
  85.     NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:data error:nil];  
  86.     <p class="p1"><span class="s1">    </span><span class="s2">//</span>输出接收到的字符串</p><p class="p2"><span class="s4">    NSString</span><span class="s3"> *str = [</span><span class="s4">NSString</span><span class="s3"> </span>stringWithUTF8String<span class="s3">:[data </span>bytes<span class="s3">]];</span></p><p class="p3">    <span class="s5">NSLog</span>(<span class="s6">@"%@"</span>,str);</p><p class="p1"><span class="s1">    </span><span class="s2">//</span>判断是否登陆成功</p>  
  87.     if ([dictionary objectForKey:@"yes"]) {  
  88.         [tooles MsgBox:[dictionary objectForKey:@"yes"]];  
  89.         return;  
  90.     }else if ([dictionary objectForKey:@"error"] != [NSNull null]) {  
  91.         [tooles MsgBox:[dictionary objectForKey:@"error"]];  
  92.         return;  
  93.     }  
  94.       
  95. }  
  96.   
  97.   //连接错误调用这个函数  
  98. - (void) GetErr:(ASIHTTPRequest *)request{  
  99.       
  100.     [tooles removeHUD];  
  101.       
  102.     [tooles MsgBox:@"网络错误,连接不到服务器"];  
  103. }  
  104.   
  105. - (void)viewDidUnload  
  106. {  
  107.     [super viewDidUnload];  
  108.     // Release any retained subviews of the main view.  
  109. }  
  110.   
  111. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  112. {  
  113.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  114. }  
  115.   
  116. -(void) dealloc  
  117. {  
  118.     [username release];  
  119.     [password release];  
  120.     [super dealloc];  
  121. }  
  122.   
  123. @end  

php端验证的代码,随便写了下,后面就是返回一个JSON格式的字符串。

[php] view
plain
copy

  1. <?php  
  2.     if($_POST['username'] == "admin" &&  $_POST['password'] == "admin")  
  3.     {  
  4.         echo '{"yes":"登陆成功"}';  
  5.     }else  
  6.     {  
  7.         echo '{"error":"用户名或密码错误"}';  
  8.     };  
  9. ?>  
时间: 2024-09-21 08:03:33

【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证的相关文章

写一个简单的登陆控件

控件 login.ascx 由于在页面上很频繁使用登陆,把它做成一个控件是很有必要的,下面就是我写的一个简单的登陆控件,大家可以根据的需要完善一下. <%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.Oledb" %><script language="VB" runat="server">Sub P

用导航控制器制作一个简单的登陆显示

用导航控制器制作一个简单的登陆显示 1.Empty项目的创建+AppDelegate的修改 #import "DXWAppDelegate.h" #import "LoginViewController.h" @implementation DXWAppDelegate - (void)dealloc { [_window release]; [super dealloc]; } - (BOOL)application:(UIApplication *)applic

ios-在一个简单方法中验证用户名

问题描述 在一个简单方法中验证用户名 需要验证用户名. 比如Peter$@不合法,但是peter123可以. 用户名中不能包含以下符号: .!#$%&'*+-/=?^_`{|}~@,;. 如果有,系统就会出现了一个警告视图. 有没有类似 这样的实现方法? -(BOOL) checkIfUsernameValidation{ NSString *_username = playerName.text; NSString *expression = @".!#$%&'*+-/=?^_

利用泛型写一个简单的链表

--------<设计模式:基于C#的工程化实现及扩展>   利用泛型实现简单链表 namespace BangWorks.PractcalPattern.Generic { /// <summary> /// 泛型链表 /// </summary> public class GenericList<T> { /// <summary> /// 链表中的节点 /// </summary> public class Node { //一

利用JQuery写一个简单的异步分页插件_jquery

写了一个Jquery异步分页插件,拿出来分享一下,有不完善之处请指教. 以用户分页为例,先看一下效果,首先是第一页: 下一页或者点击第二页后: 点击尾页后: 效果还可以吧?来看看具体怎么用,首先后台要有一个Page模型: Page.java: public class Page { /** * 当前页号 */ private int currPageNum = 1; /** * 总记录数 */ private int totalRowSize = 0; /** * 每页记录数 */ privat

iOS开发中实现一个简单的图片浏览器的实例讲解_IOS

一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 复制代码 代码如下: // //  YYViewController.m //  03-图片浏览器初步 // //  Created by apple on 14-5-21. //  Copyright (c) 2014年 itcase. All rights rese

利用PHP实现一个简单的用户登记表示例

一.展示单行的用户信息表 首先我们需要创建两个文件,一个为html文件,一个为php文件. 这里博主就创建了form.html和formHandle.php两个文件. 下面展示一下两个文件的内容: form.html的文件内容: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body>

利用stream实现一个简单的http下载器_C 语言

其实这个http下载器的功能已经相当完善了,支持:限速.post投递和上传.自定义http header.设置user agent.设置range和超时 而且它还不单纯只能下载http,由于使用了stream,所以也支持其他协议,你也可以用它来进行文件之间的copy.纯tcp下载等等.. 完整demo请参考:https://github.com/waruqi/tbox/wiki stream.c /* ///////////////////////////////////////////////

Ajax简单客户登陆验证

ajax 服务器端操作方便之处我就不吹了,地球人都知道,它最烦莫过于页面刷新,头都被刷晕了,而且他在刷新的时候,还触发服务器端的事件(解决方案:http://skylaugh.cnblogs.com/archive/2006/06/05/418010.html),现在Ajax的出现,他们的结合是发展的必然!     一.介绍一下Ajax在Asp.Net中的基本使用    1.在工程中引入Ajax.dll文件. Ajax.dll实现XmlHttpRequest请求服务器的实现细节..net项目中,