Web API .NET MVC-Http POST-Fiddler请求发送字符串变量

问题描述 投票:0回答:1

所以我正在做一个API,我必须向数据库发送一个巨大的json文件和一个变量名。目前正在使用我的代码发送和读取文件,并且工作正常。

然后,我必须发送一个用于服务名称的字符串(可能包含“ /”字符,这就是为什么我没有将其用作文件名或查询字符串。

我尝试发送此请求(HTTP POST):

---------------------------32r23rfewfwfaedef
Content-Disposition: form-data; name="fieldNameHere"; filename="XXXXXX.json"
Content-Type: application/json

{"name":"test"}

<@INCLUDE *C:\....\XXXXXX.json*@>
---------------------------32r23rfewfwfaedef--

事实是我在控制器的任何地方都找不到该变量。我的代码是这样的:

public HttpResponseMessage Post()
        {
            if (HttpContext.Current.Request.Files.Count != 1)
                throw new HttpResponseException(new HttpResponseMessage()
                {
                    ReasonPhrase = "One file is required, a json in order to create the Swagger.",
                    StatusCode = HttpStatusCode.BadRequest
                });

            SwaggerSaveModel model = new SwaggerSaveModel();

            HttpPostedFile postedFile = HttpContext.Current.Request.Files[0];

            using (System.IO.StreamReader myFile = new System.IO.StreamReader(postedFile.InputStream))
            {
                var XmlObj = new StreamReader(postedFile.InputStream).ReadToEnd();
                model.SwaggerJson = XmlObj.ToString();
            }

            return Request.CreateResponse(HttpStatusCode.Created, "blabla");

        }

文件读取很好,但是我找不到“ name”变量...我也无法更改该json文件,因为它是一个摇摇欲坠的东西,必须在发送时准确使用。

请帮助..

c# asp.net-mvc parameters http-post fiddler
1个回答
0
投票

对于像我这样的未来疑惑,我想出了解决方法。我正在这样发送我的请求:

parameter: FileName

并且像这样访问我的控制器:

HttpContext.Current.Request.Params["HTTP_PARAMETER"]

然后返回“ FileName”

© www.soinside.com 2019 - 2024. All rights reserved.