v7: Отправка xml в УТМ при помощи MSXML2.ServerXMLHTTP #783271


#0 by Pedroshitel
Собственно целью является отправка xml на сервер УТМ ЕГАИС. На примере запроса номенклатуры по коду ЕГАИС. Использую для этого MSXML2.ServerXMLHTTP, а для формирования файла Msxml2.DOMDocument Сам код:
#1 by Pedroshitel
Файл, который формируется, нормальный, проверено на аналогичном коде в 8.2 . Судя по ответу от сервера сама проблема в заголовках. Собственно сам ответ: <title>Error 500 Server Error</title> </head> <body><h2>HTTP ERROR 500</h2> <p>Problem accessing /opt/in/QueryAP. Reason: <pre>    Server Error</pre></p><h3>Caused by:</h3><pre>java.lang.RuntimeException: java.io.IOException: Missing initial multi part boundary     at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)     at es.programador.http.ClientDocumentServlet.service(Unknown Source)     at java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: Missing initial multi part boundary </pre> <h3>Caused by:</h3><pre>java.io.IOException: Missing initial multi part boundary     at es.programador.http.ClientDocumentServlet.service(Unknown Source) <hr><a href=" by Jetty:// 9.3.5.v20151012</a><hr/>
#2 by Pedroshitel
Сделал вывод(да и гугл помог) Missing initial multi part boundary указывает на неправильный заголовок или неполный. Повторюсь в 8.2 такие заголовки и такой файл легко проходят. Буду рад любой помощи)
#3 by Serginio1
#4 by VoditelKobyly
Перед отправкой в ЕГАИС прогоняю файл через функцию:
#5 by Pedroshitel
Ну да, это хороший способ привести файл к utf-8,но проблемы это не решает. Заголовки внутри файла у меня и так прописаны, более того по сути на УТМ можно отправлять и просто txt файл, не обязательно xml. Поэтому я думаю, что проблема и ошибка "Missing initial multi part boundary" относится к вот этому коду:     HTTPxml.Open("POST", ";;, -1); //асинхронный запрос      Тут в принципе из заголовка даже можно убрать "Content-Charset". Если например я буду в функцию Send передавать просто текст, то все заработает, но я хочу именно файл передать.
#6 by Serginio1
Берешь в руки фиддлер и сравниваешь. А вообще для 7 ки 3 самое то Чем использовать древние инструменты.
#7 by VoditelKobyly
Когда я писал обмен с УТМ и ловил такую ошибку, то проблема оказалась именно в правильном оформлении. Не настаиваю, может это было только у меня так. Из восьмерки запросы шли, а из семерки эти же запросы постоянно выдавали ошибки. Это все хорошо, но для меня это тёмный лес.
#8 by Serginio1
Так там примеры есть. При этом проще чем MSXML2.ServerXMLHTTP А Фиддлер   это один из самых используемых снифферов
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С