मैं एक ResponeStream से बाइट पढ़ने की कोशिश कर रहा हूं, लेकिन मैं डेटा के इंतजार के लिए कैसे कह सकता हूं?WebRequest GetResponseStream बाइट्स
अगर मैं GetResponseStream के बाद ब्रेकपॉइंट सेट करता हूं और कुछ सेकंड प्रतीक्षा करता हूं तो सभी ठीक काम करते हैं। StreamReader.ReadToEnd() का उपयोग कर भी ठीक काम करता है, लेकिन मैं स्वयं बाइट्स को पढ़ना चाहता हूं।
byte[] response = null;
int left = 0;
int steps = 0;
int pos = 0;
int bytelength = 1024;
OnReceiveStart();
using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse()) {
using (Stream sr = webResponse.GetResponseStream()) {
response = new byte[(int)webResponse.ContentLength];
left = (int)webResponse.ContentLength % bytelength;
steps = (int)webResponse.ContentLength/bytelength;
pos = 0;
for (int i = 0; i < steps; i++) {
sr.Read(response, pos, bytelength);
pos += bytelength;
OnReceiveProgress((int)webResponse.ContentLength, pos);
}
if (left != 0) {
sr.Read(response, pos, left);
}
sr.Close();
}
webResponse.Close();
}
OnReceiveProgress(1, 1);
OnReceiveFinished();
आपके पास क्या समस्या है? बीटीडब्ल्यू, 'रीड' वास्तव में पढ़ा गया बाइट्स की संख्या देता है। बाइट्स पढ़ने की संख्या के रूप में 'bytelength' के बजाय इसका उपयोग करें। –