2011-06-12 2 views
6

누군가가 asihttprequest를 도와 줄 수 있습니까?asihttprequest로 단일 다운로드 속도를 추적하는 방법

다운로드하는 각 파일의 속도 다운로드를 추적하고 모든 파일의 평균 속도를 추적하고 싶지 않습니다.

평균 다운로드 수는 모두 [ASIHTTPRequest averageBandwidthUsedPerSecond] 이지만 다운로드 수를 추적하려면 무엇을 사용할 수 있습니까?

감사

답변

2

당신은 요청을 얻을 것이다 각 요청에 대한 downloadProgressDelegate 설정할 수 있습니다 didReceiveBytes를 : 일부 데이터가 수신 될 때마다 호출 - 당신은 다운로드 속도를 계산하기 위해 그것을 사용할 수 있습니다.

이 문서에 여기를 참조하십시오 :

http://allseeing-i.com/ASIHTTPRequest/How-to-use#custom_progress_tracking

+0

첫 번째받은 바이트로부터 경과 된 총 시간은 어떻게 계산합니까? – Alby

+0

[NSDate date]의 결과를 didReceiveResponseHeaders 대리자 메서드에 저장 한 다음 didReceiveBytes에서 [NSData timeIntervalSinceReferenceDate :]를 사용합니다. – JosephH

3

이 ASI가 죽었을 고려, 내가 최근에 이전 프로젝트에서이 작업을 수행했다. 다른 사람이 도움을 필요로하는 경우 :

-(void)request:(ASIHTTPRequest *)request didReceiveBytes:(long long)bytes 
{ 
    if (!lastBytesReceived) 
     lastBytesReceived = [NSDate date]; 

    NSTimeInterval interval = [[NSDate date] timeIntervalSinceDate:lastBytesReceived]; 

    float KB = (bytes/1024); 

    float kbPerSec = KB * (1.0/interval); //KB * (1 second/interval (less than one second)) 

    NSLog(@"%llu bytes received in %f seconds @ %0.01fKB/s",bytes,interval, kbPerSec); 

    lastBytesReceived = [NSDate date]; 
} 
관련 문제