12.10.2016, 10:27 | #1 |
Участник
|
Предача XML файла web сервису
Добрый день всем. Столкнулся с задачей по интеграцией со сторонним приложением посредством Web сервисов. инициализация соединения со стороны Аксапты. Передача xml файла содержащего произвольные данные(не стандарт). Подскажите в какую сторону смотреть? Как я понял Aif немного не мой путь.
Заранее спасибо. Последний раз редактировалось raniel; 12.10.2016 в 10:28. Причина: web,aif,интеграция,сервис |
|
12.10.2016, 10:54 | #2 |
Участник
|
Я бы на вашем месте смотрел в сторону System.Net.WebRequest и System.Net.HttpWebResponse, для отправления и получения xml соответственно.
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
|
За это сообщение автора поблагодарили: raniel (1). |
13.10.2016, 01:04 | #3 |
Administrator
|
https://technet.microsoft.com/en-us/.../hh500187.aspx
Почему же? Помогло бы, если бы вы свою версию AX указали.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
13.10.2016, 07:53 | #4 |
Участник
|
реализовано в ax4, пользуйся на здоровье
X++: str boundary = /*"---------------------------" + */guid2str(newGUID()); System.Net.HttpWebRequest request; System.Net.HttpWebResponse response; System.IO.Stream dataStream; System.IO.StreamWriter writer; System.IO.StreamReader reader; CLRObject byteArray; System.Text.Encoding utf8; System.Exception clrException; InteropPermission interopPermission; ; try { interopPermission = new InteropPermission(InteropKind::ClrInterop); interopPermission.assert(); request = CLRInterop::staticInvoke('System.Net.WebRequest','Create', sendURL);// sendURL - адрес запроса utf8 = System.Text.Encoding::get_UTF8(); request.set_ContentType(strfmt("multipart/form-data; boundary=%1", boundary)); request.set_Method('POST'); request.set_AllowWriteStreamBuffering(true); request.set_Timeout(EGAISParameters.Timeout); content += "\r\n--" + boundary + "\r\n"; content += "Content-Disposition: form-data; name=\"xml_file\"; filename=\"doc.xml\"\r\nContent-Type: xml\r\n\r\n"; content += XMLMessage;// тут содержимое файла content += "\r\n--" + boundary + "--\r\n\r\n"; byteArray = utf8.GetBytes(content); size = byteArray.get_Length(); datastream = request.GetRequestStream(); writer = new System.IO.StreamWriter(datastream,utf8,size); writer.WriteLine(content); writer.Flush(); writer.Close(); response = request.GetResponse(); dataStream = response.GetResponseStream(); reader = new System.IO.StreamReader (dataStream); statusCode = response.get_StatusCode(); if(statusCode == '200') // получен положительный ответ { //info('Соединение установлено'); dataStream = response.GetResponseStream(); reader = new System.IO.StreamReader (dataStream); xml = reader.ReadToEnd(); reader.Close(); response.Close(); } } Последний раз редактировалось andiv; 13.10.2016 в 07:57. |
|
|
За это сообщение автора поблагодарили: AlGol (2), dech (3), Silence (1), Player1 (5). |
Теги |
httpwebrequest, httpwebresponse, web сервис, xml |
|
|