前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASI框架使用全集讲解

ASI框架使用全集讲解

原创
作者头像
大师级码师
修改2021-11-01 09:26:55
4010
修改2021-11-01 09:26:55
举报
文章被收录于专栏:大师级码师
代码语言:javascript
复制
#import "ViewController.h"
import "ASIHTTPRequest.h"
import "ASIFormDataRequest.h"
import "DACircularProgressView.h"
@interface ViewController ()<ASIHTTPRequestDelegate>
@property(nonatomic,strong) NSMutableData  *data;
@property(nonatomic,weak) DACircularProgressView * da;
@end
@implementation ViewController

(NSMutableData *)data{


if (_data==nil) {
    _data=[NSMutableData data];
}
return _data;


}

(void)viewDidLoad {
  [super viewDidLoad];
self.view.backgroundColor=[UIColor greenColor];
DACircularProgressView * da=[[DACircularProgressView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
self.da=da;
  self.da.center=self.view.center;
  [self.view addSubview:da];


}
-(void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event{

//1 ASI 同步get请求

//    [self _synGet];

//2 ASI 异步get请求

//    [self _asynGet];

//3 ASI 异步get请求(block)

//    [self _asynGetBlock];

//4 ASI 同步Post请求

//     [self _synPost];

//5 ASI 异步Post请求

//    [self _asynPost];

// 6ASI 下载

//    [self _downLoad];

// 7ASI 上传
[self _upLoad];



}
//同步get请求

(void)_synGet{


NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];

//1 封装请求
ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
//2 发送请求
[request startSynchronous];
//3 获取响应数据
NSData * data=request.responseData;
NSString * result=[[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding];
NSLog(@"%@",result);


}
//异步get请求

(void)_asynGet{


NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];

//1 封装请求
ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];

request.delegate=self;

//2 发送请求
[request startAsynchronous];




}
//异步get请求block

(void)_asynGetBlock{


NSURL * url=[NSURL URLWithString:@"http://localhost/logo.php?userName=jereh&pwd=123"];

//1 封装请求
ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];

//2 发送请求
[request startAsynchronous];


//3 重写block
 [request setDataReceivedBlock:^(NSData *data) {
     [self.data appendData:data];




 }];

 [request setHeadersReceivedBlock:^(NSDictionary *responseHeaders) {

 }];

[request setFailedBlock:^{

}];


[request setCompletionBlock:^{
    NSString * str=  [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",str);
}];


}
//同步Post请求block

(void) _synPost{


NSURL * url=[NSURL URLWithString:@"http://localhost/loginPost.php"];

ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];

//设置请求参数
[form setPostValue:@"jereh" forKey:@"userName"];
[form setPostValue:@"123" forKey:@"pwd"];

[form startSynchronous];

NSString * str= form.responseString;
NSLog(@"%@",str);


}
//同步Post请求block

(void) _asynPost{
NSURL * url=[NSURL URLWithString:@"http://localhost/loginPost.php&quot;];
ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];
//设置请求参数
  [form setPostValue:@"jereh" forKey:@"userName"];
  [form setPostValue:@"123" forKey:@"pwd"];
form.delegate=self;
[form startSynchronous];


}

(void) _downLoad{
NSURL * url=[NSURL URLWithString:@"http://localhost/test.rar&quot;];
//1 封装请求
  ASIHTTPRequest * request=[[ASIHTTPRequest alloc] initWithURL:url];
//2 dest path
 NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
  path =[path stringByAppendingPathComponent:@"new.rar"];
  NSLog(@"%@",path);
request.downloadDestinationPath=path;
request.downloadProgressDelegate=self.da;
//3 请求
  [request startAsynchronous];


}
//上传

(void) _upLoad{
NSURL * url=[NSURL URLWithString:@"http://localhost/upload.php&quot;];
ASIFormDataRequest * form=[[ASIFormDataRequest alloc] initWithURL:url];



NSString * path=[[NSBundle mainBundle] pathForResource:@"default.png" ofType:nil];

//设置文件参数
[form setFile:path withFileName:@"new.png" andContentType:@"image/png" forKey:@"file"];


form.uploadProgressDelegate=self.da;

[form startAsynchronous];


}
pragma mark - ASIHTTPRequest代理

(void)request:(ASIHTTPRequest )request didReceiveData:(NSData )data{
[self.data appendData:data];
}

(void)request:(ASIHTTPRequest )request didReceiveResponseHeaders:(NSDictionary )responseHeaders{


}

(void)requestFinished:(ASIHTTPRequest *)request{
NSString * str=  [[NSString alloc] initWithData:self.data encoding:NSUTF8StringEncoding];
  NSLog(@"%@",str);


}

(void)requestFailed:(ASIHTTPRequest *)request{

}
@end </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档