繁体   English   中英

在自托管Web服务器环境中通过POST REST API上传C#文件

[英]C# File Upload via POST REST API in a Self-Hosted Web Server Environment

我有一个已创建的Web服务,该服务使用“ System.Web.Http.SelfHost”中的“ HttpSelfHostConfiguration”进行自我托管。 我需要创建一个REST API,允许其他人进行POST调用以将文件上传到我的服务。

到目前为止,我所做的所有研究都是针对托管Web服务的,例如IIS。 因此,允许他们执行的操作是使用“ HttpContext.Current”获取HttpRequest内容。

但是,在自托管环境中,“ HttpContext.Current”为null,因此我需要走一条替代路线。 我的Google-fu可能已关闭,但我似乎找不到任何有关如何在自托管环境中完成此操作的信息。

在这种情况下,是否有人对如何完成创建REST API(允许人们发布文件)有任何示例或建议?

提前致谢!

在您的post方法中使用如下所示的HttpRequestMessage

 public HttpResponseMessage Post(HttpRequestMessage request) {...} 

然后,您可以使用如下所示的方法来提取请求消息的上下文

字符串sRequestcXMLContent = Encoding.UTF8.GetString(request.Content.ReadAsByteArrayAsync()。Result);

希望这个能对您有所帮助!

这篇文章帮助我分配,但我认为我会发布我的解决方案来帮助人们。

    public async void Post(HttpRequestMessage Message)
    {
        MultipartMemoryStreamProvider x = await Message.Content.ReadAsMultipartAsync();
        Byte[] xx = await x.Contents[0].ReadAsByteArrayAsync();
        File.WriteAllBytes("c:\\test.png", xx);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM