URSA
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Извлечение вложения из ответа сервера SOAP

Извлечение вложения из ответа сервера SOAP

Ответ
Поиск в этой теме
Непрочитано 15.12.2021, 09:31 #1
Извлечение вложения из ответа сервера SOAP
vaganov
 
Регистрация: 15.12.2021
Сообщений: 1

Приветствую, может кто-то поможет мне в решении вопроса.

запрашиваю файл из сервиса вот таким образом


Код:
[Выделить все]
try
            {
                var service = "тут урл";
                var xmlData = $@"<soapenv:Envelope xmlns:soapenv=""схема"" xmlns:ws=""сервер/"">
                                    <soapenv:Header/>
                                     <soapenv:Body>
                                         <ws:getAttachment>
                                             <authInfo>
                                                <orgId>5400</orgId>
                                                <system>123</system>
                                                <user>**********</user>
                                                <password>**********</password>
                                             </authInfo>
                                             <request>
                                                <mailGWlogid>{fileId}</mailGWlogid>
                                             </request>
                                         </ws:getAttachment>
                                     </soapenv:Body>
                                 </soapenv:Envelope>";

                var httpWebRequest = (HttpWebRequest)WebRequest.Create(service);
                httpWebRequest.ContentType = $@"text/xml;charset=""utf-8""";
                httpWebRequest.Method = "POST";
                byte[] bytes = Encoding.ASCII.GetBytes(xmlData);
                httpWebRequest.ContentLength = bytes.Length;
                httpWebRequest.Timeout = 100000;

                using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
                {
                    streamWriter.Write(xmlData);
                }

                var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
 
                using (Stream str = httpResponse.GetResponseStream())
                {
                    using (FileStream fs = File.Create($@"c:\Get_files1\b{FileName}.zip"))
                    {
                        const int bufferSize = 1024;
                        byte[] buffer = new byte[bufferSize];

                        int bytesRead = 0;
                        do
                        {
                            bytesRead = str.Read(buffer, 0, bufferSize);

                            fs.Write(buffer, 0, bytesRead);
                        }
                        while (bytesRead != 0);
                    }
                }

            }
            catch (WebException ex)
            {
                HttpWebResponse httpResponse = (HttpWebResponse)ex.Response;
                if (ex.Response != null)
                {
                    using (Stream stream = ex.Response.GetResponseStream())
                    {
                        StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                        MessageBox.Show(reader.ReadToEnd());
                    }
                }
            }
Всё нормально скачивается, но сам файл внутри выглядит вот таким образом.


Код:
[Выделить все]
--uuid:1fbb3ebf-a00f-4b9a-948e-595ff01985ea
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <root.message@cxf.apache.org>

<soap:Envelope xmlns:soap=,kf ,kf ,kf"><soap:Body><ns2:getAttachmentResponse xmlns:ns2="сервер"><attachment><attachmentName>b0105003.011</attachmentName><checkSum>639172493</checkSum><attachmentData><xop:Include xmlns:xop="что-то там" href="cid:c0194020-39c4-4374-8e5a-ccf085ff7c84-95"/></attachmentData></attachment></ns2:getAttachmentResponse></soap:Body></soap:Envelope>
--uuid:1fbb3ebf-a00f-4b9a-948e-595ff01985ea
Content-Type: application/zip
Content-Transfer-Encoding: binary
Content-ID: <c0194020-39c4-4374-8e5a-ccf085ff7c84-95@ (c0194020-39c4-4374-8e5a-ccf085ff7c84-95/)>
Content-Disposition: attachment;name="b0105003.011"

тут зип -файл

--uuid:1fbb3ebf-a00f-4b9a-948e-595ff01985ea
Прикрепляются заголовки и soap информация

можно как-то вытянуть конкретный зип, который внутри или хотя бы заголовки убрать? Может получать посылку надо как-то по другому ? Я себе уже голову сломал (((
.Net 4.8
Просмотров: 802
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > .NET > Извлечение вложения из ответа сервера SOAP

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Спектр ответа - RESP и FILLDATA fasol ANSYS 37 23.05.2019 15:51
Извлечение данных блоков в таблицу? PutnikAda AutoCAD 2 08.11.2015 15:40
Как удалить сразу все ссылки на извлечение данных? mann AutoCAD 2 08.06.2013 15:03
ExAc 0.3: Экспорт поэтажных акселерограмм и спектров ответа. Александр Бауск Robot 2 16.07.2011 03:32