- 分享类型:应用开发相关
使用ASIHTTPRequest可以很方便的进行一下操作:
ASIHTTPRequest用于一般的网络请求、下载等都没有问题,ASIFormDataRequest更加的适用于带有参数的网络请求,当然ASIHTTPRequest也能够实现;
(2)使用ASIHTTPRequest进行下载
ASIHTTPRequest * downloadRequest = [ASIHTTPRequest requestWithURL:url];
//设置目的地址
[downloadRequest setDownloadDestinationPath:path];
// 设置临时地址
[downloadRequest setTemporaryFileDownloadPath:[path stringByAppendingString:@".tmpDLFile"]];
//保存下载文件title
downloadRequest.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:fileTitle,@"fileTitle", nil];
//设置委托
[downloadRequest setDelegate:self];
//设置是是否支持断点下载
[downloadRequest setAllowResumeForFileDownloads:YES];
//支持后台
[downloadRequest setShouldContinueWhenAppEntersBackground:YES];
//完成后调用
[downloadRequest setDidFinishSelector:@selector(downloadFinish:)];
[downloadRequest setDidFailSelector:@selector(downfailed:)];
[downloadRequest startAsynchronous];
3)使用ASIHTTPRequest上传文件(例子google语音识别)
- (void)sendRequest:(id)sender {
NSURL *URL = [NSURL URLWithString:@"http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=9"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc]initWithURL:URL] autorelease];
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[request addRequestHeader:@"Content-Type" value:@"audio/x-flac; rate=16000"];
[request setRequestMethod:@"POST"];
NSData *data = [NSData dataWithContentsOfFile:@"/Users/adminadmin/Desktop/hello.flac"];
NSLog(@"date:%@",data);
[request appendPostData:data];
[request setDidFinishSelector:@selector(didFinishPost:)];
[request setDidFailSelector:@selector(didFailedPost:)];
[request setDelegate:self];
[request startSynchronous];
(4)使用ASIFormDataRequest 上传带有参数的请求
- (void) upload{
NSString *postURLString = [NSString stringWithFormat:@"http://....?method=SaveData"];
NSURL *URL = [[[NSURL alloc]initWithString:postURLString] autorelease];
ASIFormDataRequest *postRequest = [[[ASIFormDataRequest alloc]initWithURL:URL] autorelease];
NSLog(@"url:%@",postRequest.url);
postRequest.defaultResponseEncoding = NSUTF8StringEncoding;
[postRequest addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[postRequest addRequestHeader:@"Content-Type" value:@"charset=utf-8"];
[postRequest setPostValue:value1 forKey:@"subject"];
[postRequest setPostValue:value2 forKey:@"content"];
[postRequest setDelegate:self];
[postRequest setTimeOutSeconds:180.0];
[postRequest setDidFinishSelector:@selector(didFinishPost:)];
[postRequest setDidFailSelector:@selector(didFailPost:)];
[postRequest startAsynchronous];
}
- 同步/异步方式下载数据
- 定义下载队列,让队列中的任务按指定的并发数来下载(队列下载必须是异步的)
- 提交表单,文件上传
- 处理cookie
- 设置代理
- 上下载进度条
- 重定向处理
- 请求与响应的GZIP
- 验证与授权
ASIHTTPRequest用于一般的网络请求、下载等都没有问题,ASIFormDataRequest更加的适用于带有参数的网络请求,当然ASIHTTPRequest也能够实现;
(2)使用ASIHTTPRequest进行下载
ASIHTTPRequest * downloadRequest = [ASIHTTPRequest requestWithURL:url];
//设置目的地址
[downloadRequest setDownloadDestinationPath:path];
// 设置临时地址
[downloadRequest setTemporaryFileDownloadPath:[path stringByAppendingString:@".tmpDLFile"]];
//保存下载文件title
downloadRequest.userInfo = [NSDictionary dictionaryWithObjectsAndKeys:fileTitle,@"fileTitle", nil];
//设置委托
[downloadRequest setDelegate:self];
//设置是是否支持断点下载
[downloadRequest setAllowResumeForFileDownloads:YES];
//支持后台
[downloadRequest setShouldContinueWhenAppEntersBackground:YES];
//完成后调用
[downloadRequest setDidFinishSelector:@selector(downloadFinish:)];
[downloadRequest setDidFailSelector:@selector(downfailed:)];
[downloadRequest startAsynchronous];
3)使用ASIHTTPRequest上传文件(例子google语音识别)
- (void)sendRequest:(id)sender {
NSURL *URL = [NSURL URLWithString:@"http://www.google.com/speech-api/v1/recognize?xjerr=1&client=chromium&lang=zh-CN&maxresults=9"];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc]initWithURL:URL] autorelease];
[request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[request addRequestHeader:@"Content-Type" value:@"audio/x-flac; rate=16000"];
[request setRequestMethod:@"POST"];
NSData *data = [NSData dataWithContentsOfFile:@"/Users/adminadmin/Desktop/hello.flac"];
NSLog(@"date:%@",data);
[request appendPostData:data];
[request setDidFinishSelector:@selector(didFinishPost:)];
[request setDidFailSelector:@selector(didFailedPost:)];
[request setDelegate:self];
[request startSynchronous];
(4)使用ASIFormDataRequest 上传带有参数的请求
- (void) upload{
NSString *postURLString = [NSString stringWithFormat:@"http://....?method=SaveData"];
NSURL *URL = [[[NSURL alloc]initWithString:postURLString] autorelease];
ASIFormDataRequest *postRequest = [[[ASIFormDataRequest alloc]initWithURL:URL] autorelease];
NSLog(@"url:%@",postRequest.url);
postRequest.defaultResponseEncoding = NSUTF8StringEncoding;
[postRequest addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];
[postRequest addRequestHeader:@"Content-Type" value:@"charset=utf-8"];
[postRequest setPostValue:value1 forKey:@"subject"];
[postRequest setPostValue:value2 forKey:@"content"];
[postRequest setDelegate:self];
[postRequest setTimeOutSeconds:180.0];
[postRequest setDidFinishSelector:@selector(didFinishPost:)];
[postRequest setDidFailSelector:@selector(didFailPost:)];
[postRequest startAsynchronous];
}
本文介绍如何使用ASIHTTPRequest和ASIFormDataRequest进行文件的上传和下载,包括设置请求头、处理响应及异常情况。
983

被折叠的 条评论
为什么被折叠?



