Web API. NET MVC - POST Http - строковая переменная отправки запроса Fiddler - PullRequest
0 голосов
/ 13 февраля 2020

Итак, я делаю 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, потому что это чванство, и его нужно использовать именно так, как оно есть отправлено.

Пожалуйста, помогите ..

1 Ответ

0 голосов
/ 14 февраля 2020

Для будущих сомнений, подобных моим, я понял, как это сделать. Я отправляю свой запрос так:

parameter: FileName

И обращаюсь к моему контроллеру вот так:

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

Затем возвращается «FileName»

...