реализовано в 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();
}
}