Architecture Net


         

в файле SoapAdd. txt представлены



String *line = // Строка
String::Format("Content-Length: {0}\r\n", // Строка:: Формат
contentLength.ToString());
sb->Append(line); // Добавить в конец (строка)
sb->Append( // Добавить в конец
"SOAPAction: \"http://tempuri.org/Add\"\r\n") ;
sb->Append("\r\n");; // Добавить в конец
...

Функция BuildContent считывает в буфер содержимое файла и вычисляет размер буфера в байтах.

*contentLength = 0;
String *line; // Строка
while ((line = fileStream->ReadLine()) != 0)
{
sb->Append(line); // Добавляет в конец (строка)
sb->Append("\r\n"); // Добавляет в конец ("\r\n")

*contentLength += line->Length + 2;
// *contentLength + = строка-> Длина + 2;
}
fileStream->Close();

Данные в файле SoapAdd. txt представлены в SOAP-формате. Как и следовало ожидать, этот файл имеет вид, описанный выше. Входные параметры 9 и 3 представляются в соответствии со спецификацией WSDL.

<?xml version="l.О" encoding="utf-8"?>

<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body>
<Add xmlns="http://tempuri.org/">
<x>9</x>
<y>3</y>
</Add>
</soap:Body>
</soap:Envelope>

Сначала программа формирует запрос. Для этого используется метод POST протокола передачи гипертекстовых файлов HTTP. Запрос содержит стандартные заголовки протокола передачи гипертекстовых файлов HTTP и дополнительный заголовок SOAPAction. Затем запрос кодируется согласно спецификации SOAP. Вывод программы приведен ниже:

POST /SimpleWebService/Add.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: 355
SOAPAction: "http://tempuri.org/Add"
<?xml version="l.0" encoding="utf-8"?>

<soap:Envelope
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


Содержание  Назад  Вперед