//联系人:石虎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的环境配置和使用示例》
二、代码实现
[objc]view plaincopy
1,构造请求
需要包含头文件:#import"ASIFormDataRequest.h"
ASIFormDataRequest*request;
request=[ASIFormDataRequestrequestWithURL:[NSURLURLWithString:@"http://www.tekuba.net"]];
//构造请求
[requestsetPostValue:emailFiled.textforKey:@"Mail"];
[requestsetPostValue:accountFiled.textforKey:@"UserAccount"];//帐户
[requestsetPostValue:[selfmd5:passwordFiled.text]forKey:@"PassWord"];//密码
[requestsetDelegate:self];
//配置代理为本类
[requestsetTimeOutSeconds:10];
//设置超时
[requestsetDidFailSelector:@selector(urlRequestFailed:)];
[requestsetDidFinishSelector:@selector(urlRequestSucceeded:)];
[requeststartSynchronous];//同步传输
//[request startAsynchronous];//异步传输
2,实现数据处理方法
[objc]view plaincopy
//连接失败
-(void)urlRequestFailed:(ASIHTTPRequest*)request
{
NSError*error =[requesterror];
NSLog(@"%@",error);
NSLog(@"连接失败!");
UIAlertView* alt=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"连接失败"delegate:nilcancelButtonTitle:@"确定"otherButtonTitles:nil,nilnil];
[altshow];
[altrelease];
}
//请求成功
-(void)urlRequestSucceeded:(ASIHTTPRequest*)request
{
NSData*data=[requestresponseData];
NSXMLParser*parser=[[NSXMLParseralloc]initWithData:data];
NSLog(@"data length = %d",[datalength]);
NSLog(@"xml data = %@",[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding]);
[parsersetDelegate:self];
[parserparse];//进入解析
}
谢谢!!!
网友评论