Показать сообщение отдельно
Старый 28.01.2016, 17:39   #10  
Romul is offline
Romul
Участник
 
186 / 11 (1) +
Регистрация: 26.12.2007
Какая версия нав? Почему не используете DotNet Interop, вместо Automation?

1. Создаете Text строку SoapEnvelope (2015 поддерживает безлимитный текст). В эту строку пихаете ваш XML.

2. Пишете функцию "открытия" веб-реквеста:

LOCAL OpenHttpWebRequest(Url : Text[250];Soap : Boolean;VAR httpWebRequest : DotNet "System.Net.HttpWebRequest")
uri := uri.Uri(Url);
httpWebRequest := httpWebRequest.CreateDefault(uri);
httpWebRequest.Method := 'POST';
httpWebRequest.Credentials := credential.DefaultNetworkCredentials;
IF Soap THEN
httpWebRequest.ContentType := 'application/soap+xml'
ELSE
httpWebRequest.ContentType := 'text/xml';

3. Далее делаете это:

OpenHttpWebRequest(HTTP_адрес_сервиса,TRUE,httpWebRequest);
streamWriter := streamWriter.StreamWriter(httpWebRequest.GetRequestStream);
streamWriter.Write(SoapEnvelope);
streamWriter.Close;
CloseHttpWebRequest(httpWebRequest);

4. Функция закрытия CloseHttpWebRequest:

httpWebResponse := httpWebRequest.GetResponse;
IF httpWebResponse.StatusDescription <> 'OK' THEN
ERROR(Text100,httpWebResponse.StatusDescription);

5. Типы переменных:
httpWebResponse DotNet System.Net.HttpWebResponse.'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
httpWebRequest DotNet System.Net.HttpWebRequest.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
streamWriter DotNet System.IO.StreamWriter.'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
uri DotNet System.Uri.'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'