Чтение данных из System.IO.Stream в текст или файл - PullRequest
0 голосов
/ 31 марта 2020

Я использую HttpWebRequest.GetStreamData () для получения данных из потока, а затем записываю пару файлов в эту переменную. Прежде чем вызвать метод GetResponse () в потоке, мне нужно получить копию данных и поместить ее в текстовый формат. Вот мой фрагмент кода

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);

            wr.Method = "POST";

         string requestbody = "Some Body Text"

            Stream rs = wr.GetRequestStream();
            foreach (fragment in Documents).ToList())
            {
                        byte[] requestBytes = System.Text.Encoding.UTF8.GetBytes(requestbody);
                        rs.Write(requestBytes, 0, requestBytes.Length);

                        FileStream fileStream = new FileStream(fragment.FilePath, FileMode.Open, FileAccess.Read);
                        byte[] buffer = new byte[4096];
                        int bytesRead = 0;
                        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
                        {
                            rs.Write(buffer, 0, bytesRead);
                        }
                        fileStream.Flush();
                        fileStream.Close();
                        fileStream = null;
                        byte[] trailer = System.Text.Encoding.ASCII.GetBytes("Trailer Text");
                        rs.Write(trailer, 0, trailer.Length);

                    }
                }

           using (StreamReader strm = new StreamReader(rs))
        {
            string text = strm.ReadToEnd();
        }

            rs.Close();
            rs = null;

Проблема в том, что я получаю сообщение об ошибке «Поток не читается». Когда я проверяю свойство rs.canread, оно устанавливается в false.

Может ли кто-нибудь помочь мне прочитать содержимое моего потока rs. Я попробовал несколько методов, но ни один из них, похоже, не работает.

...