Bir ResponeStream'den bayt okumaya çalışıyorum ama verileri beklemeyi nasıl söyleyebilirim?WebRequest GetResponseStream okuma baytları
GetResponseStream'den sonra bir kesme noktası belirler ve birkaç saniye beklerse, her şey iyi çalışır. StreamReader.ReadToEnd() kullanımı da iyi çalışıyor, ancak baytları kendim okumak istiyorum.
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();
Tam olarak sorun nedir? BTW, 'Read' aslında okunan bayt sayısını döndürür. Okunan bayt sayısı olarak "bytelength" yerine bunu kullanın. –