0

第一次发帖!我一直在为这个特殊的案例而伤脑筋。我有一个 Web 应用程序,它需要将一个文件上传到一个 web-api 并接收一个 SVG 文件(在一个字符串中)。

网络应用程序按如下方式上传文件:

using (var client = new WebClient())
            {
                var response = client.UploadFile(apiUrl, FileIGotEarlierInMyCode);

                ViewBag.MessageTest = response.ToString();
            }

以上工作,但随后我们进入 API 部分:如何访问上传的文件?伪代码:

public string Post([FromBody]File f)
        {
            File uploadedFile = f;

            String svgString = ConvertDataToSVG(uploadedFile);
            return s;
        }

换句话说:如何将 XML 文件上传/发送到我的 Web-api,在那里使用/操作它并将其他数据发回?

提前致谢!缺口

PS:我试过这个答案: Accessing the exact data sent using WebClient.UploadData on the server 但我的代码没有在 Request.InputStream 上编译。

4

1 回答 1

0

Request.InputStream 对您不起作用的原因是Request属性可以引用不同类型的 Request 对象,具体取决于您正在开发的 ASP.NET 解决方案类型。有:

您正在使用 Web API,所以是 HttpRequestMessage 。以下是使用此类读取原始请求字节的方法:

var data = Request.Content.ReadAsByteArrayAsync().Result;
于 2016-06-30T07:42:52.073 回答