|
![]() |
#1 |
Талантливый разгвоздяй
|
Цитата:
Вот есть похожий на ваш пример сервис - если отправить запрос на https://telenorcsms.com.pk:27677/cor...x&password=xxx, то он возвращает XML ответ, похожий на ваш: X++: <?xml version="1.0" encoding="UTF-8" ?> <corpsms> <command>Auth_request</command> <data>Error 200</data> <response>Error</response> </corpsms> 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("https://telenorcsms.com.pk:27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx"); //этот веб-сервис отправляет в ответ данные, которые были направлены ему. webRequest.set_Method("POST"); //2. Ввести данные к отправке и ковертировать их в массив байтов postData = ":27677/corporate_sms2/api/auth.jsp?msisdn=xxxx&password=xxx"; encodingUTF8 = System.Text.Encoding::get_UTF8(); byteArray = encodingUTF8.GetBytes(postData); //3. Изменить свойства запроса: ContentType, ContentLength. //webRequest.set_ContentType("application/x-www-form-urlencoded"); text/xml;charset=UTF-8 webRequest.set_ContentType("text/xml;charset=UTF-8"); 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(); } |
|
|
За это сообщение автора поблагодарили: Logger (3). |