Скопируйте XML в новый файл без заголовка - PullRequest
0 голосов
/ 12 сентября 2018

Я пытаюсь получить данные тела XML-файла, который был отправлен в мое приложение.

но когда я копирую содержимое и помещаю его в новый файл, содержимое неверно.

Оригинальный XML:

<?xml version="1.0" encoding="utf-8"?>
<eM_NM_001 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <MESSAGE>
    ....
  </MESSAGE>
</eM_NM_001>

Новый файл после вставки тела:

-----------------------8d618ce02a1a097
Content-Disposition: form-data; name="file"; filename="14_20180912162639.xml"
Content-Type: application/octet-stream

<?xml version="1.0" encoding="utf-8"?>
<eM_NM_001 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <MESSAGE>
    ...
  </MESSAGE>
</eM_NM_001>
-----------------------8d618ce02a1a097--

Я просто хочу, чтобы второй файл также содержал xml, а не данные заголовка ... (по крайней мере, я думаю, что это данные заголовка)

Как, черт возьми, я могу это решить?


Что у меня так далеко:

        //POST api/<controller>
        [HttpPost]
        public string Post()
        {
            var result = "";
            if (Request.Content != null)
            {
                string map = @"D:\bestelApp\bestelApp\Content\bestellingen\ontvangen";
                string count = Directory.GetFiles(map, "*.xml").Count().ToString();
                string extention = ".xml";
                string fileName = "bestelling" + (count != "0" ? count : "") + extention;

                string path = map + "//" + fileName;

                using (Stream output = File.OpenWrite(path))
                {
                    using (Stream input = HttpContext.Current.Request.GetBufferedInputStream())
                    {
                        input.CopyTo(output);
                    }
                }

                result = new bestellingenController().ConvertXmlToObj(fileName, path);
            }
            return result;
        }

Что я пробовал до сих пор:

[HttpPost]
public void Post(HttpRequestMessage request) {
    var doc = new XmlDocument();
    doc.Load(request.Content.ReadAsStreamAsync().Result);
    doc.Save(@"D:\bestelApp\bestelApp\Content\bestellingen\ontvangen");
}

var context = new HttpContextWrapper(HttpContext.Current);
context.Request.ContentType = null;
HttpRequestBase request = context.Request; //This was an attempt to set everything to null except the xml.

//Get the data from the HTTP stream
var body = new StreamReader(HttpContext.Current.Request.InputStream).ReadToEnd();

var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(body);
xmlDocument.Save(@"D:\bestelApp\bestelApp\Content\bestellingen\ontvangen\" + fileName);

Я уже задавал этот вопрос, но плохо ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...