2011-06-12 14 views
6

के साथ एक एकल डाउनलोड गति को ट्रैक करने के लिए कैसे कोई मुझे asihttprequest के साथ मदद कर सकता है?asihttprequest

मैं प्रत्येक फ़ाइल की गति डाउनलोड को ट्रैक करना चाहता हूं, न कि सभी फ़ाइलों की औसत गति।

सभी डाउनलोडों के औसत स्पैड के लिए, [ASIHTTPRequest averageBandwidthUsedPerSecond] है लेकिन मैं प्रत्येक डाउनलोड को ट्रैक करने के लिए क्या उपयोग कर सकता हूं?

धन्यवाद

उत्तर

2

आप प्रत्येक अनुरोध है, जो एक अनुरोध प्राप्त करेंगे के लिए एक downloadProgressDelegate सेट कर सकते हैं: didReceiveBytes: हर बार कुछ डेटा प्राप्त होता है कहते हैं - आप उसका प्रयोग डाउनलोड गति की गणना कर सकते हैं।

यहाँ देखें दस्तावेज में:

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

+0

मैं पहले प्राप्त बाइट से कुल समय की गणना कैसे कर सकता हूं? – Alby

+0

क्या आप didReceiveResponseHeaders प्रतिनिधि विधि में [NSDate दिनांक] का परिणाम संग्रहीत कर सकते हैं, फिर didReceiveBytes का उपयोग [NSData timeIntervalSinceReferenceDate:] – JosephH

3

ध्यान में रखते हुए भारतीय पुरातत्व सर्वेक्षण मर चुका है, मैं हाल ही में एक पुराने परियोजना पर यह करने के लिए किया था। अगर किसी और को मदद की ज़रूरत है:

-(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]; 
} 
संबंधित मुद्दे