code_junkie

How can I read an Http response stream twice in C#?

Nov 11th, 2011
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. HttpWebResponse response = (HttpWebResponse)request.GetResponse();
  2. stream = response.GetResponseStream();
  3. RssReader reader = new RssReader(stream);
  4. do
  5. {
  6. element = reader.Read();
  7. if (element is RssChannel)
  8. {
  9. feed.Channels.Add((RssChannel)element);
  10. }
  11. } while (element != null);
  12.  
  13. StreamReader sr = new StreamReader(stream);
  14. feed._FeedRawData = sr.ReadToEnd();
  15.  
  16. Stream responseStream = CopyAndClose(resp.GetResponseStream());
  17. // Do something with the stream
  18. responseStream.Position = 0;
  19. // Do something with the stream again
  20.  
  21.  
  22. private static Stream CopyAndClose(Stream inputStream)
  23. {
  24. const int readSize = 256;
  25. byte[] buffer = new byte[readSize];
  26. MemoryStream ms = new MemoryStream();
  27.  
  28. int count = inputStream.Read(buffer, 0, readSize);
  29. while (count > 0)
  30. {
  31. ms.Write(buffer, 0, count);
  32. count = inputStream.Read(buffer, 0, readSize);
  33. }
  34. ms.Position = 0;
  35. inputStream.Close();
  36. return ms;
  37. }
Add Comment
Please, Sign In to add comment