您的位置:首页 > 产品设计 > UI/UE

使用ASIFormDataRequest处理post请求

2013-09-18 14:05 302 查看
ASIHTTPRequest类库中的ASIFormDataRequest是实现HTTP协议中的处理POST表单的很好的类库。

在说明之前先需要了解HTTP请求的Get和Post方法。

Get方法一般是从服务器获取数据,而Post方法主要是向服务器传输一些数据。

Get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到完整的URL请求。ASIHTTPRequest类主要完成Get请求。

Post方法是将表单内各个字段与其内容放置在HTML HEADER内传送到ACTION属性所指的URL地址。用户看不到这个过程。ASIFormDataRequest类主要完成Post请求。

需要包含头文件:#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 startAsynchronous];//异步传输

2,实现数据处理方法

//失败

-(void)urlRequestFailed:(ASIHTTPRequest *)request

{

    NSError *error =[request error];

    NSLog(@"%@",error);

    NSLog(@"连接失败!");

    UIAlertView * alt=[[UIAlertView alloc] initWithTitle:@"提示" message:@"连接失败" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles: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];//进入解析

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  http网络 异步 数据