IOS学习笔记26—HTTP操作之ASIHTTPRequest(二)
来源:互联网 发布:淘宝商家条形码怎么填 编辑:程序博客网 时间:2024/04/29 05:02
利用ASIHTTPRequest也可以向服务器提交请求参数,今天就做一个登录的例子,客户端发送XML请求,然后得到服务端的响应,响应的结果是返回XML字符串。直接上代码吧,代码中有详细注释。
首先在.h文件中做如下声明:
#import <UIKit/UIKit.h>@interface ViewController : UIViewController@property (retain,nonatomic) UIActivityIndicatorView *indicator;@property (retain, nonatomic) IBOutlet UITextField *userNameTextField;@property (retain, nonatomic) IBOutlet UITextField *passwordTextField;- (IBAction)login:(id)sender;@end
然后是.m实现文件(这里只列出了主要代码部分):
//使用异步请求并更新UI- (IBAction)login:(id)sender { //弹出加载提示框 [self showToast:@"正在登陆..."]; /*执行登陆请求 服务端为跑在Tomcat上的一个Servelet 请求方式采用xml,格式如下: <Document> <User id ="xxx" password=”xxx”/> </Document> 请求结果返回一个XML字符串,这里的服务器地址我省略了,因为用的是以前一个项目的服务器,这里没法公开 */ __block ASIHTTPRequest *request = [[ASIHTTPRequest alloc] initWithURL:[NSURL URLWithString:@"http://xxx/server/Login"]]; //构建可变字符串请求 NSMutableString *requestXML = [[NSMutableString alloc] init]; [requestXML appendString:@"<Document>"]; [requestXML appendString:@"<User id=\""]; [requestXML appendString:self.userNameTextField.text]; [requestXML appendString:@"\" "]; [requestXML appendString:@"password=\""]; [requestXML appendString:self.passwordTextField.text]; [requestXML appendString:@"\"/>"]; [requestXML appendString:@"</Document>"]; //将NSString类型转换成NSData类型,后面的参数为编码类型,这里是UTF-8 NSData *requestData = [requestXML dataUsingEncoding:NSUTF8StringEncoding]; //使用ASIHTTPRequest中的自定义请求参数的方法 [request appendPostData:requestData]; //设置请求方式 [request setRequestMethod:@"POST"]; //请求执行完会调用block中的代码 [request setCompletionBlock:^{ NSLog(@"Success"); NSLog(@"%@",[request responseString]); [self.indicator stopAnimating]; [alertView dismissWithClickedButtonIndex:0 animated:YES]; [self.indicator release]; [alertView release]; }]; //如果出现异常会执行block中的代码 [request setFailedBlock:^{ NSLog(@"Failed"); [self.indicator stopAnimating]; [alertView dismissWithClickedButtonIndex:0 animated:YES]; [self.indicator release]; [alertView release]; }]; [request startAsynchronous]; [request release]; }//构建自定义弹出提示框-(void)showToast:(NSString*) message{ alertView = [[UIAlertView alloc] initWithTitle:message message:nil delegate:self cancelButtonTitle:nil otherButtonTitles:nil, nil]; [alertView setBackgroundColor:[UIColor clearColor]]; //必须在这里调用show方法,否则indicator不在UIAlerView里面 [alertView show]; self.indicator = [[UIActivityIndicatorViewalloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; self.indicator.center = CGPointMake(alertView.bounds.size.width/2, alertView.bounds.size.height-40); //停止时隐藏indicator self.indicator.hidesWhenStopped = YES; //将UIActivityIndicator作为子控件放在UIAlertView当中 [alertView addSubview:self.indicator]; [self.indicator startAnimating]; }
下面看看运行效果和服务器的返回信息:
点击登录后,可以在控制台看到服务器返回的登录结果:
以上就是一个利用ASIHTTPRequest向服务端发送数据并获取返回结果的小例子,利用ASIHTTPRequest还有其他很多强大的功能,具体使用方法和用途可以查看官方文档。
对Android&IOS感兴趣的朋友可以加入我们的讨论QQ群,在这里,我们只讨论干货:
iOS群:220223507
Android群:282552849
欢迎关注我的新浪微博和我交流:@唐韧_Ryan
- IOS学习笔记26—HTTP操作之ASIHTTPRequest(二)
- IOS学习笔记25—HTTP操作之ASIHTTPRequest(一)
- HTTP操作之ASIHTTPRequest(二)
- IOS开发之—HTTP操作之ASIHTTPRequest(一)(一)
- HTTP操作之ASIHTTPRequest
- IOS学习笔记(四)之ASIHTTPRequest
- HTTP操作之ASIHTTPRequest(一)
- iOS 开发之ASIHttpRequest(二)
- 《图解HTTP》学习笔记之(二)
- ios学习之(x)--ASIHTTPRequest
- iOS开发ASIHttpRequest介绍(二)-- ASIHttpRequest发送数据
- iOS学习之-使用ASIHttpRequest调用WebService
- HTTP学习笔记之二——Web服务器
- HTTP学习笔记之二——Web服务器
- ios学习路线—iOS高级(ASIHTTPRequest)
- Javascript学习笔记之--强大的数组操作(二)
- PHP学习笔记之PHP操作(二)
- Git&GitHub学习笔记之(二)Git命令操作
- 数据库连接池配置
- Unable to open kernel device "\\.\VMCIDev\VMX": 重叠 I/O 操作在进行中. Did you reboot after installing VMwar
- FOJ2013-最大子段和
- UNIX C 编程 ---- atexit函数的使用
- 字符串处理
- IOS学习笔记26—HTTP操作之ASIHTTPRequest(二)
- C 关于sizeof的典型错误
- 天草壳的世界
- jdbc链接oracle数据库
- 7.jstl之SQL:param
- QprogressDialog
- 数据库建表操作SQL代码大全
- 编码和解码
- 【扩展Baby Step Giant Step解决离散对数问题】