#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"];
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"];
//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"];
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 删除。