我一直在尝试将文件流式传输到我的Web服务.在我的Controller(ApiController)中,我有一个Post函数如下:
public void Post(Stream stream)
{
if (stream != null && stream.Length > 0)
{
_websitesContext.Files.Add(new DbFile() { Filename = Guid.NewGuid().ToString(), FileBytes= ToBytes(stream) });
_websitesContext.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)
我一直在尝试使用我的Web客户端流式传输文件,方法如下:
public void UploadFileStream(HttpPostedFileBase file)
{
WebClient myWebClient = new WebClient();
Stream postStream = myWebClient.OpenWrite(GetFileServiceUrl(), "POST");
var buffer = ToBytes(file.InputStream);
postStream.Write(buffer, 0,buffer.Length);
postStream.Close();
}
Run Code Online (Sandbox Code Playgroud)
现在,当我调试我的Web服务时,它进入Post函数,但stream始终为null.想知道是否有人可能知道为什么会这样?
我正在尝试实现 Swashbuckle 5,并且我有几种方法可以像这样读取请求正文:
var requestBody = await Request.GetRawBodyStringAsync();
Run Code Online (Sandbox Code Playgroud)
我如何告诉 Swashbuckle/Swagger 将其作为参数读取,以便人们可以测试我的 API?我看到这里有人问了一个非常相似的问题,但那是针对二进制内容和早期版本的 Swashbuckle。
任何帮助将不胜感激!