AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2016, 07:53   #4  
andiv is offline
andiv
Участник
 
19 / 37 (2) +++
Регистрация: 11.01.2007
реализовано в 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

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: How to update AX 2012 Enterprise Portal in a multi-server web farm Blog bot DAX Blogs 0 09.11.2015 13:11
kurthatlevik: AX suggestion: XML Columns and XML indexes Blog bot DAX Blogs 0 28.08.2015 13:11
Формирование XML файла - приведите пример плиз! Pavlo AKA Panok DAX: Программирование 18 20.02.2008 23:41
Inside Dynamics AX 4.0: The Web Framework Blog bot DAX Blogs 0 25.10.2007 03:04
Pokluda: Outbound web service (AIF) Blog bot DAX Blogs 0 28.10.2006 17:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:38.