ASIHTTPRequest一个实例

转载 2012年03月24日 10:46:12

ASIHTTPRequest用法不多介绍,网上一堆,实例如图

1 #import <UIKit/UIKit.h>
2 #import "MainView.h"
3 
4 @interface AppDelegate : UIResponder <UIApplicationDelegate>
5 
6 @property (strong, nonatomic) UIWindow *window;
7 @property (strong, retain) MainView *viewController;
8 
9 @end
 1 - (void)dealloc
 2 {
 3     [_window release];
 4     [_viewController release];
 5     [super dealloc];
 6 }
 7 
 8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 9 {
10     CGRect screenBounds=[[UIScreen mainScreen]applicationFrame];
11     CGRect windowBounds=screenBounds;
12     windowBounds.origin.y=0;
13     self.window = [[[UIWindow alloc] initWithFrame:screenBounds] autorelease];
14     // Override point for customization after application launch.
15     self.viewController=[[MainView alloc]initWithFrame:windowBounds];
16     self.window.backgroundColor = [UIColor whiteColor];
17     [self.window addSubview: self.viewController];
18     [self.window makeKeyAndVisible];
19     return YES;
20 }
 1 #import <UIKit/UIKit.h>
 2 #import "ASIHTTPRequest.h"
 3 
 4 @interface MainView : UIView
 5 {
 6     UIButton *btn1;
 7     NSOperationQueue *queue;
 8     ASIHTTPRequest *request;
 9     UIProgressView *progressView;
10 }
11 
12 - (IBAction)grabURL:(id)sender;
13 
14 @end
  1 #import "MainVIew.h"
  2 
  3 @implementation MainView
  4 
  5 - (id)initWithFrame:(CGRect)frame
  6 {
  7     self = [super initWithFrame:frame];
  8     if (self) {
  9         //队列
 10         queue = [[NSOperationQueue alloc] init];
 11         
 12         btn1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
 13         [btn1 setFrame:CGRectMake(50, 50, 100, 50)];
 14         [btn1 setTitle:@"下载" forState:UIControlStateNormal];
 15         
 16         btn1.titleLabel.font = [UIFont boldSystemFontOfSize:14];
 17         btn1.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 16);
 18         [btn1 addTarget:self
 19                              action:@selector(grabURLInTheBackground:)
 20                    forControlEvents:UIControlEventTouchUpInside];    
 21         //进度条
 22         progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(0.0f, 40.0f, 220.0f, 90.0f)];
 23         [progressView setProgressViewStyle: UIProgressViewStyleDefault];
 24         
 25         [self addSubview:btn1];
 26         [self addSubview:progressView];
 27     }
 28     return self;
 29 }
 30 
 31 -(void) dealloc
 32 {
 33     [request clearDelegatesAndCancel];
 34     [request release];
 35     request = nil;
 36     [progressView release];
 37     [queue release];
 38     [btn1 release];
 39     [super dealloc];
 40 }
 41 
 42 //多线程异步
 43 - (IBAction)grabURLInTheBackground:(id)sender
 44 {
 45     
 46     NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
 47     request = [ASIHTTPRequest requestWithURL:url];
 48     [request setDelegate:self];
 49     [request setDidFinishSelector:@selector(requestDone:)];
 50     [request setDidFailSelector:@selector(requestWentWrong:)];
 51     [request setDownloadProgressDelegate:progressView];
 52     [queue addOperation:request];
 53     
 54 }
 55 
 56 - (void)requestDone:(ASIHTTPRequest *)request
 57 {
 58     NSString *responseString = [request responseString];
 59     NSLog(@"responseString=%@",responseString);
 60 }
 61 
 62 - (void)requestWentWrong:(ASIHTTPRequest *)request
 63 {
 64     NSError *error = [request error];
 65 }
 66 
 67 //异步
 68 - (IBAction)grabURLInBackground:(id)sender
 69 {
 70     
 71     NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
 72     
 73     request= [ASIHTTPRequest requestWithURL:url];
 74     
 75     [request setDelegate:self];
 76     
 77     [request startAsynchronous];
 78     
 79 }
 80 
 81 - (void)requestFinished:(ASIHTTPRequest *)request
 82 {
 83     // 当以文本形式读取返回内容时用这个方法
 84     NSString *responseString = [request responseString];
 85     
 86     // 当以二进制形式读取返回内容时用这个方法
 87     NSData *responseData = [request responseData];
 88     
 89     NSLog(@"responseString=%@",responseString);
 90     
 91     [responseString autorelease];
 92     [responseData autorelease];
 93 
 94     
 95 }
 96 
 97 - (void)requestFailed:(ASIHTTPRequest *)request
 98 {
 99     
100     NSError *error = [request error];
101     [error autorelease];
102     
103 }
104 
105 //同步
106 - (IBAction)grabURL:(id)sender
107 {
108     NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
109     
110     request = [ASIHTTPRequest requestWithURL:url];
111     
112     [request startSynchronous];
113     
114     NSError *error = [request error];
115     
116     if (!error) {
117         
118         NSString *response = [request responseString];
119         NSLog(@"response=%@",response);
120         
121     }
122     
123 }
124 
125 @end
from:http://www.cnblogs.com/pengyingh/articles/2354270.html


ASIHTTPRequest类库简介和使用说明 加 一些实例

官方网站: http://allseeing-i.com/ASIHTTPRequest/ 。可以从上面下载到最新源码,以及获取到相关的资料。 使用iOS SDK中的HTTP网络请求API,相当的复杂...
  • ssihc0
  • ssihc0
  • 2011年11月23日 12:26
  • 5598

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

【原创作品, 欢迎转载,转载请在明显处注明! 谢谢。         原文地址:http://blog.csdn.net/toss156/article/details/7638529】 ...
  • toss156
  • toss156
  • 2012年06月06日 15:51
  • 23025

利用ASIHttpRequest实现一个简单的登录验证

【原文地址:http://blog.csdn.net/toss156/article/details/7638529】 今天给大家带来一个简单的登陆验证,用的是ASIHttpRequ...

SpringMVC4+thymeleaf3的一个简单实例(篇二:springMVC与thymeleaf的整合)

用SpringMVC和thymeleaf实现一个简单的应用,包括SpringMVC4和thymeleaf3的整合,页面参数的获取,页面参数验证,以及用MySql保存数据,等。水平有限,只供参考。...
  • asd_op
  • asd_op
  • 2016年11月17日 17:07
  • 2607

storm一个简单实例

  • 2015年06月26日 11:03
  • 29KB
  • 下载

一个oracle 用户下面创建多个实例

一个oracle 用户下面创建多个实例 2012/12/10 v1.0 前言 本文主要介绍了同一个oracle 用户下面如何重建多个oracle 实例。本文的测试环境为redhat ...
  • olfisher
  • olfisher
  • 2013年11月27日 13:28
  • 23821

一个Delphi 10.1 Berlin手电筒APP实例

  • 2017年08月14日 15:59
  • 11KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ASIHTTPRequest一个实例
举报原因:
原因补充:

(最多只允许输入30个字)