//联系人:石虎 QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、概念
ASIHTTPRequest类库中的ASIFormDataRequest是实现HTTP协议中的处理POST表单的很好的类库。使用起来非常简单。
下面简要总结其用法。
在说明之前先需要了解HTTP请求的Get和Post方法。
Get方法一般是从服务器获取数据,而Post方法主要是向服务器传输一些数据。
Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到完整的URL请求。ASIHTTPRequest类主要完成Get请求。
Post方法是将表单内各个字段与其内容放置在HTML HEADER内传送到ACTION属性所指的URL地址。用户看不到这个过程。
ASIFormDataRequest类主要完成Post请求。关于ASIHTTPRequest类库的安装配置详见《ASIHTTPRequest的环境配置和使用示例》
二、代码实现
- 1,构造请求
- 需要包含头文件:#import "ASIFormDataRequest.h"
- ASIFormDataRequest *request;
- request=[ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://www.tekuba.net"]];
-
- [request setPostValue:emailFiled.text forKey:@"Mail"];
- [request setPostValue:accountFiled.text forKey:@"UserAccount"];
- [request setPostValue:[self md5:passwordFiled.text] forKey:@"PassWord"];
- [request setDelegate:self];
-
- [request setTimeOutSeconds:10];
-
- [request setDidFailSelector:@selector(urlRequestFailed:)];
- [request setDidFinishSelector:@selector(urlRequestSucceeded:)];
- [request startSynchronous];
-
2,实现数据处理方法
-
- -(void)urlRequestFailed:(ASIHTTPRequest *)request
- {
- NSError *error =[request error];
- NSLog(@"%@",error);
- NSLog(@"连接失败!");
- UIAlertView * alt=[[UIAlertView alloc] initWithTitle:@"提示" message:@"连接失败" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil nil];
- [alt show];
- [alt release];
- }
-
-
- -(void)urlRequestSucceeded:(ASIHTTPRequest *)request
- {
- NSData *data=[request responseData];
- NSXMLParser *parser=[[NSXMLParser alloc] initWithData:data];
- NSLog(@"data length = %d",[data length]);
- NSLog(@"xml data = %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
- [parser setDelegate:self];
- [parser parse];
- }
谢谢!!!