官網(wǎng)講解的很細(xì)致
https://allseeing-i.com/ASIHTTPRequest/
下面記錄一下項(xiàng)目中遇到的坑
由于需要檢測文件的下載速度,所以需要實(shí)現(xiàn)
-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data
// 接收到服務(wù)器返回的數(shù)據(jù)時調(diào)用(數(shù)據(jù)量比較大的時候,這個方法會被調(diào)用多次,每次只能拿到部分?jǐn)?shù)據(jù))
當(dāng)實(shí)現(xiàn)方法后,下載的文件并不能自己保存,需要在下載完成的方法中做處理
-(void)request:(ASIHTTPRequest *)request didReceiveData:(NSData *)data
{
// 將返回的數(shù)據(jù)進(jìn)行拼接
[self.finishData appendData:data];
self.receiveSize += data.length;
float progress = (float)self.receiveSize;
self.receiveSizeLabel.text = [NSString stringWithFormat:@" 接收: %.2f MB",progress / 1000 /1000];
self.netWorkManager.speed = [NSString stringWithFormat:@"%.2f",(float)[ASIHTTPRequest averageBandwidthUsedPerSecond]/1000];
}
// 請求結(jié)束的時候調(diào)用(在該方法中拿到最終的數(shù)據(jù))
-(void)requestFinished:(ASIHTTPRequest *)request
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *folderPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:K_DOWNLOAD_DOCS_PATH];
if(![fileManager fileExistsAtPath:folderPath])
{
[fileManager createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:nil];
}
NSString *filename = [folderPath stringByAppendingPathComponent:@"test.pdf"];
[fileManager createFileAtPath:filename contents:self.finishData attributes:nil];
[HUD showSuccessWithStatus:@"下載完成"];
}