veces valor saber repite repetidos que programa para numeros numero lapices elementos diga cuantas contar arreglo array algoritmo c# stream

valor - ¿Cómo puedo leer una secuencia de respuesta Http dos veces en C#?



cuantas veces se repite un numero en un arreglo c# (2)

Estoy tratando de leer una secuencia de respuesta Http dos veces a través de lo siguiente:

HttpWebResponse response = (HttpWebResponse)request.GetResponse(); stream = response.GetResponseStream(); RssReader reader = new RssReader(stream); do { element = reader.Read(); if (element is RssChannel) { feed.Channels.Add((RssChannel)element); } } while (element != null); StreamReader sr = new StreamReader(stream); feed._FeedRawData = sr.ReadToEnd();

Sin embargo, cuando se ejecuta el código de StreamReader no se devuelve ningún dato porque la transmisión ya ha llegado al final. Traté de restablecer el flujo a través de stream.Position = 0 pero esto arroja una excepción (creo que porque la transmisión no puede cambiar su posición manualmente).

Básicamente, me gustaría analizar la secuencia de XML y tener acceso a los datos sin procesar (en formato de cadena).

¿Algunas ideas?


¿Has intentado restablecer la posición de la secuencia? si esto no funciona, puede copiar la secuencia a un MemoryStream y allí puede restablecer la posición (es decir, a 0) tantas veces como lo desee.


Cópielo en un nuevo MemoryStream primero. Luego puede volver a leer el MemoryStream tantas veces como desee:

Stream responseStream = CopyAndClose(resp.GetResponseStream()); // Do something with the stream responseStream.Position = 0; // Do something with the stream again private static Stream CopyAndClose(Stream inputStream) { const int readSize = 256; byte[] buffer = new byte[readSize]; MemoryStream ms = new MemoryStream(); int count = inputStream.Read(buffer, 0, readSize); while (count > 0) { ms.Write(buffer, 0, count); count = inputStream.Read(buffer, 0, readSize); } ms.Position = 0; inputStream.Close(); return ms; }