У меня было много проблем с запуском этого в c #, и поиск в Google не сработал, как я надеялся.
Проблема в том, что я получаю этот сигнал MTOM как объект Stream.Он состоит из 2 частей.XML и байт [] - это ZIP-файл, который мне нужно сохранить на диск.Кто-нибудь знает хороший способ сделать это?
Я пробовал MimeKit, MimeMessage, MimeEntity и несколько других менее известных библиотек, и мне не повезло, интерпретируя мой поток с этими пакетами.
Вот поток при печати в виде строки:
----MIME_boundary
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: 8bit
Content-Id: <start.xml>
<?xml version='1.0' encoding='UTF-8' ?>
<soap:Envelope
xmlns:soap = "http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xop = "http://www.w3.org/2004/08/xop/include"
>
<soap:Body>
<COMPANYDOC>
<COMPANYNET_INFO
transactionId = "00486KZ"
>
<ATTACHMENTS>
<ATTACHMENT>
<xop:Include
href = "cid:70049@COMPANY.com"
/>
</ATTACHMENT>
</ATTACHMENTS>
</COMPANYNET_INFO>
</COMPANYDOC>
</soap:Body>
</soap:Envelope>
----MIME_boundary
Content-Type: application/zip
Content-Transfer-Encoding: binary
Content-Disposition: attachment; filename="COMPANYDOC.ZIP"
Content-Id: <70049@COMPANY.com>
PK
Все выглядит нормально, но я не могу его прочитать, и, к сожалению, этот сервис более старый и не может быть изменен.
var mpp = new MultipartParser(HttpContext.Current.Request.InputStream);
Дает мне, что StartIndex не может быть меньше нуля
MimeKit.MimeEntity mime = MimeKit.MimeEntity.Load(HttpContext.Current.Request.InputStream);
Он просто создает новый mimeEntity с типом содержимого: text / xml, и в нем нет разделенного заголовка MIME..
C # Multipart Mime объект Это именно то, что мне нужно, но его ссылки больше не работают
Так что мой вопрос, как я могу разобрать этот multipartMTOM сообщение в C # и в конце дня получите вложение ZIP (это все, что меня действительно волнует)?
Любая помощь будет принята с благодарностью.
Спасибо за чтение!