【问题标题】:Returning CSV file from REST webservice as a Stream in C#从 REST Web 服务返回 CSV 文件作为 C# 中的流
【发布时间】:2019-04-09 18:30:16
【问题描述】:

我正在调用公共 REST API 以在我的 GetStream 方法中获取 CSV 文件,该方法返回 Stream 类型的对象。

public Stream GetStream(object args)
        {
    var request = (HttpWebRequest)WebRequest.Create(URL);

                    var response = (HttpWebResponse)request.GetResponse();

                    string responseLine = string.Empty;
                    StreamReader reader = new StreamReader(response.GetResponseStream());
}

前面的代码设置为返回一个 XML 文档,该文档是从返回的 CSV 序列化而来的。现在我只需要返回 CSV 数据。

我在这里创建我的 Stream 对象,它现在正在返回 XML:

Stream baseStream = new MemoryStream();
                    XmlTextWriter tw = new XmlTextWriter(baseStream, System.Text.Encoding.UTF8);
                    responseXml.WriteTo(tw);
                    tw.Flush();
                    baseStream.Seek(0, SeekOrigin.Begin);
                    return baseStream;

我不确定如何从 Stream 中的响应中简单地返回 CSV 数据。该方法适用于 Biztalk 中的适配器,因此 CSV 将具有与之关联的架构和映射。

【问题讨论】:

    标签: c# rest csv http stream


    【解决方案1】:

    我设法通过使用 StreamWriter 将数据写入流,将其刷新到 Stream 并返回到开头来解决这个问题。结果字符串包含响应中的 CSV 数据。请看下面的代码:

     Stream baseStream = new MemoryStream();
                    StreamWriter csvWriter = new StreamWriter(baseStream, Encoding.UTF8);
                    csvWriter.Write(results);
                    csvWriter.Flush();
                    baseStream.Seek(0, SeekOrigin.Begin);
                    Console.WriteLine(baseStream.Length);
                    return baseStream;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多