C# Отправка xml через POST

248
23 марта 2018, 10:17

Добрый день! Пытаюсь отправить методом POST xml-файл (в УТМ ЕГАИС). В ответ сервер выдает ошибку Error 500 Server Error HTTP ERROR 500 Problem accessing /opt/in/QueryRests_v2. Reason:Server Error Caused by:java.lang.RuntimeException: java.io.IOException: Incomplete parts. Где что не до заполнил, подскажите, пожалуйста. Вот код:

static void Main(string[] args)
    {
        HttpWebRequest oRequest = null;
        oRequest = (HttpWebRequest)HttpWebRequest.Create("http://169.254.0.165:8080/opt/in/QueryRests_v2");
        oRequest.ContentType = "multipart/form-data; charset=utf-8; boundary=\"AaB03x\"";
        oRequest.Method = "POST";
        //PostData pData = new PostData();
        byte[] buffer = Encoding.UTF8.GetBytes(GetPostData());
        // Set content length of our data
        oRequest.ContentLength = buffer.Length;
        // Dump our buffered postdata to the stream, booyah
        Stream oStream = oRequest.GetRequestStream();
        oStream.Write(buffer, 0, buffer.Length);
        oStream.Close();
        try
        {
            // get the response
            HttpWebResponse oResponse = (HttpWebResponse)oRequest.GetResponse();
        }catch(WebException webex)
        {
            string exMessage = webex.Message;
            if (webex.Response != null)
            {
                using (StreamReader responseReader = new StreamReader(webex.Response.GetResponseStream()))
                {
                    exMessage = responseReader.ReadToEnd();
                }
            }
        }
    }
    static string GetPostData()
    {
        // Get boundary, default is --AaB03x
        string xml = "<?xml version=\"1.0\" encoding=\"UTF - 8\"?><ns:Documents Version=\"1.0\"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"xmlns:ns=\"http://fsrar.ru/WEGAIS/WB_DOC_SINGLE_01\"xmlns:qp=\"http://fsrar.ru/WEGAIS/QueryParameters\"><ns:Owner><ns:FSRAR_ID>000000000000</ns:FSRAR_ID></ns:Owner><ns:Document><ns:QueryRests_v2></ns:QueryRests_v2></ns:Document></ns:Documents>";
        string boundary = "--AaB03x";
        StringBuilder sb = new StringBuilder();
        sb.AppendLine(boundary);
        sb.AppendLine(string.Format("Content-Disposition: file; name=\"{0}\"; filename=\"{1}\"", "xml_file", "select.xml"));
        sb.AppendLine("Content-Type: text/xml; charset=utf-8");
        //sb.AppendLine("multipart/form-data");
        sb.AppendLine();
        sb.AppendLine(xml);
        sb.AppendLine(boundary);
        return sb.ToString();
    }

П.С. Может есть у кого пример кода по отправке запросов в УТМ ЕГАИС через POST?

Answer 1

Спасибо Андрей NOP. Файл действительно был не валидный. Сформировал его средствами и все ушло. Так же не хватало \r\n после последнего boundary

READ ALSO
Что конкретно делает метод Thread.SpinWait?

Что конкретно делает метод Thread.SpinWait?

Из документации откровенно говоря ничего непонятно, все очень сумбурноЧто именно делает этот метод?

214
Как выдрать видеострим на флеше с сайта?

Как выдрать видеострим на флеше с сайта?

Приветствую всех! Есть Сайт, и есть необходимость качать видеострим к себе, затем транслировать его же, но уже без флеша, в перспективеВсе...

223
Как создать такой эффект на wpf

Как создать такой эффект на wpf

Помогите создать на wpf такой дизайн авторизации

228
Как убрать пустую строку Xml C#

Как убрать пустую строку Xml C#

Мне нужно вытянуть RSS данные для работы с InterfaxНо проблема это XML

211