【问题标题】:Returning a stream from Swagger generated c# server从 Swagger 生成的 c# 服务器返回一个流
【发布时间】:2018-01-29 17:14:20
【问题描述】:

Swagger 使用如下方法从 API 生成服务器:

[HttpGet]
    [Route("SomeRoute")]
    [SwaggerOperation("GetFile")]
    [SwaggerResponse(200, type: typeof(System.IO.Stream))]
    public virtual IActionResult GetFile()
    {
        string exampleJson = null;
        string text = "This could be the contents of a file";

        exampleJson = text;
        var example = exampleJson != null
        ? JsonConvert.DeserializeObject<System.IO.Stream>(exampleJson)
        : default(System.IO.Stream);
        return new ObjectResult(example);
    }

如果我将“这可能是文件的内容”替换为以下代码行:

var stream = new FileStream(@".\Files\test.txt", FileMode.Open, FileAccess.Read);
var requestBody = new StreamReader(stream,Encoding.ASCII,true).ReadToEnd();

我收到一个 JsonConvert 异常,说“无效字符”。从 swagger 生成的代码返回流的正确方法是什么?

【问题讨论】:

    标签: c# json asp.net-web-api stream swagger


    【解决方案1】:

    这似乎行得通。

        var stream = new FileStream(@".\Files\test.txt", FileMode.Open, FileAccess.Read);
        var reader = new StreamReader(stream, Encoding.ASCII, true);
    
        return new ObjectResult(reader.BaseStream);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多