Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 307

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 301 302 303 304 305 306 < 307 > 308 309 310 311 312 313 .. 320 >> Следующая

+ ¦tmessaga name + <msssage name + ^message name + <messegs name
"AddSoapln"> 'AddSoapOut "> "AddFloatsSoapln"> "AddFlaatsSaapOut"> "SubtractSrjapIrt"> "SubtractSoapOirt"^ "MultiplvSoepIn"? :"MultiplySoapOut"> 'DivideSoapInm> 'DivideSoapOut": "GetSrmplePlSoapIn'^ "GetSimplePLSaapOut "> 'AddHttpCetIrt"> "AddHttpGetOut'? "AddFlrjatsHttpGetln"> 'AddFloatsHttpGetOut"> "SubtractHttpGetln"> "Subtract HttpGetOut">
iL
ТГГ
іРис. 15.11. Для каждого метода web-службы предусмотрены WSDL-Определения для всех протоколов подключения
Local intranet
В VVS DL как и во многие другие метаязыки, глубоко вникать есть смысл в том случае, если вы собираетесь создать что-нибудь вроде своего собственного анализатора кода WSDL или просмотрщика типов ASP.NET. Если создание таких программных продуктов действительно входит в ваши планы, мы советуем вам также обратиться к типам пространства имен System U'eb.Services j^escriptlcn. Эти типы библиотеки базовых классов .КЕТпозволяют удобно манипулировать кодом WSD L непосредственно из программы.
Протоколы подключения к web-службам
Как уже было сказано, основная задача любой web-службы ASP.NET — вернуть клиенту запрашиваемые им данные по протоколу HTTP. Однако для обмена данными между клиентом и сервером можно использовать три разных метода (они и называются протоколами подключения — wire protocols): HTTP-GET, HTTP-POST и SOAP. Мы уже неоднократно упоминали об этих протоколах, однако для удобства сведения о них мы на этот раз сведем в таблицу:
Выбор протокола подключения определяет то, какими типами ми методам web-служб и возвращаемыми ими клиентам) смогут обмениваться кли -
764 Глава 15 • Web-службы
ент и web-служба. Можно сделать лишь общее замечание о том, что наибольшие возможности обеспечивает протокол SOAP. Однако вначале мы рассмотрим применение протоколов HTTP-GET и HTTP-POST.
Таблица 15.6. Протоколы подключения к web-службам
Протокол подключения Характеристика_
HTTP-GET При использовании этого метода данные добавляются к адресной
строке URL
HTTP-POST Данные добавляются в специальное поле заголовка HTTP
SOAP Данные передаются в XML-совместимом формате SOAP
Обмен данными при помощи и HTTP-POST
При передаче данных методом HTTP-GETданные дописываются к строке запроса в формате U КI. в виде пар имя — значение (сам адрес отделяется от набора значений вопросительным знаком (?)). При применении HTTP-POST данные передаются при помощи же пар имя — значение, только они помещаются в поле заголовка протокола HTTP. При использовании обычных методов возвращаемый клиенту результат всегда возвращается в простом формате XM L в виде <имя_типа>Значение</имА типа51,
HTTP-GET и HTTP-POST — методы очень простые и многим разработчикам хорошо знакомые. Однако их возможности оставляют желать лучшего: с их помощью мы не можем передавать сложные данные, такие как структуры или экземпляры объектов. Фактически клиент и web-служба могут обмениваться только типами, представленными в табл. 15.7.
Таблица 15.7. Типы данных, которые можно передавать при помощи протоколов HTTP-GET и HTTP-POST
Тип Комментарий
Перечисления Передача объектов типов, производных от Systen-vEnum, вполне возможна,
но следует учитывать, что эти объекты передаются как обычные строковые значения
Простые массивы Можно передавать только массивы примитивов (но не объектов
пользовательских типов)
'Строковые значения Строковые значения передаются без проблем. При помощи строковых значений также передаются и значения других типов данных CLRn таких как Intl6, Int32, Int64, Boolean, Single< Double, Decimal, DateTime и многих других
Передача данных при помощи HTTP-GET и HTTP-POST производится очень
просто. Мы создаем web-страницу с формой НТМТ, а в качестве получателя для этой формы указываем файл .asmx. Метод передачи данных определяется при помощи атрибута method тега <fortn>. Вот пример такой web-страницы (она будет называться HTMLPagel.htm), которая будет принимать от пользователя два значения и передавать их методу Subtract () нашей web-службы CakWebService: <нтм>
<HEAD>
<TITtE><?TITLE>
<К?ТА Н№?-'тт№" Content-Microsoft Visual Studio
Протоколы подключения к web-службам 765
</НЕА0> <60DY>
<fo-r- щіШ * 'SET' action = •ntlo:/ ^ocelhost/U'.cMsbServicc/Ca'.cServlc<?.tgnx/Mftirvct' > <p>F1rst Number:
<input id=Textl name = x type-text> </p> <p>Second Number
<input id=Text2 name = у type=text> </p> <p>
<irtput id=Submitl type=submit value=Submit> </p>
</form>
</B0DY>
</HT№>
To, как выглядит эта страница (можно сказать, пользовательский интерфейс нашей web-службы), показано на рис. 15.12.
Ib lAljiWIJM-Ui'.Ji'iW1?^
J fite Edit Favorites Tools ijeflp ИД
J •¦»•92I ol I '2| Search GjFavorJes M
Address (? C:\HTMLPagel,htm Zl t*Go
- First Number J300 I
Second N-иііЬс |3
I Submit |
Done j ?3 Mycomputer
Рис. 15.12. Форма HTML для передачи данных з web-службу
Код такой простой, что комментировать почти нечего. Отметим только два момента. Обратите внимание, что мы в качестве получателя данных формы указали не только адрес страницы *.asmx, но и имя вызываемого метода — это вполне допускается. Кроме того, для каждого из текстовых полей мы при помощи атрибута паше определили имя параметра, которому оно соответствует (х и у).
Предыдущая << 1 .. 301 302 303 304 305 306 < 307 > 308 309 310 311 312 313 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100