在Self-Hosted Web服务器环境中通过POST REST API上传C#文件

本文关键字:REST POST API 上传 文件 Web Self-Hosted 服务器 环境 | 更新日期: 2023-09-27 18:27:35

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

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

然而,在自托管环境中,"HttpContext.Current"为null,因此我需要采用另一种方法。我的谷歌功能可能已经关闭,但我似乎找不到任何关于如何在自托管环境中实现这一点的信息。

关于如何创建一个REST API,允许人们在这种情况下将文件POST到,有人有任何例子或建议吗?

提前感谢!

在Self-Hosted Web服务器环境中通过POST REST API上传C#文件

在发布方法中使用如下HttpRequestMessage

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

然后你可以使用下面这样的东西来提取请求消息的上下文

string sRequestcXMLContent=编码.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);
    }