smailik, а почему именно WinInet? Этого класса даже нет в стандартной AX 2009, подозреваю у вас доработка/апгрейд класса с AX 3.0/4.0.
Вот то же самое, но используя сборки .NET и класс WebRequest:
X++:
static void MicrosoftWebRequestSample(Args _args)
{
System.Net.WebRequest webRequest;
System.Net.ICredentials credentialCache;
System.Net.HttpWebResponse httpWebResponse;
System.IO.Stream stream;
System.IO.StreamReader streamReader;
str postData;
System.Byte[] byteArray;
System.Text.Encoding encodingUTF8;
str statusDescription;
str responseFromServer;
;
//1. Создать запрос.
webRequest = System.Net.WebRequest::Create("http://httpbin.org/post"); //этот веб-сервис отправляет в ответ данные, которые были направлены ему.
webRequest.set_Method("POST");
//2. Ввести данные к отправке и ковертировать их в массив байтов
postData = "url:/rest/2/authentication/createSession?account=ХХХ&login=ХХХ.dispatcher&password=ХХХ";
encodingUTF8 = System.Text.Encoding::get_UTF8();
byteArray = encodingUTF8.GetBytes(postData);
//3. Изменить свойства запроса: ContentType, ContentLength.
webRequest.set_ContentType("application/x-www-form-urlencoded");
webRequest.set_ContentLength(byteArray.get_Length());
//4. Если требуется авторизация, то указать учетные данные.
credentialCache = System.Net.CredentialCache::get_DefaultCredentials();
//5. Получить поток с данными.
stream = webRequest.GetRequestStream();
//6. Записать поток данных.
stream.Write(byteArray, 0, byteArray.get_Length());
//7. Закрыть поток.
stream.Close();
//8. Получить ответ.
httpWebResponse = webRequest.GetResponse();
//9. Отобразить статус.
statusDescription = httpWebResponse.get_StatusDescription();
info(strFmt("%1", statusDescription));
//10. Получить поток с данными.
stream = httpWebResponse.GetResponseStream();
//11. Открыть поток с помощью StreamReader.
streamReader = new System.IO.StreamReader(stream);
//12. Прочитать содержимое.
responseFromServer = streamReader.ReadToEnd();
//13. Вывести содержимое в инфолог.
info(strFmt("%1", responseFromServer));
//14. Закрыть все.
streamReader.Close();
stream.Close();
httpWebResponse.Close();
}
Там тестовый веб-сервис, он в ответ сразу отправляет данные, отправленные ему. У меня сейчас работает, проверьте может решение подойдет.
Честно содрал пример у Microsoft отсюда:
http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx.