Понедельник, 18.12.2017, 21:34
Приветствую Вас Гость | RSS

Лекции

Меню сайта
Форма входа
Категории раздела
ТАУ (Теория автоматического управления) [31]
лекции по ТАУ
Экология [151]
учебник
Бухгалтерский учет и налогообложение в строительстве [56]
Дементьев А.Ю. - Практическое пособие
Психология [104]
Пип
информатика [80]
с# Карли Ватсон
современные стулья [0]
новинки
Поиск
Главная » 2010 » Февраль » 11 » Добавление web-метода
00:55
Добавление web-метода
Добавление web-метода
Следующее, что необходимо сделать, это добавить некоторый метод в web-
службу. Мы добавим в нее простой метод Reversestring (), который получает
строку и возвращает клиенту перевернутую строку.
Практикум: добавление метода
1. Добавьте Следующий КОД В файл Servicel.asmx.cs:
[WebMethod] •:
public s t r i n g ReverseString(string message)
:•/:;:;: • { .
char[] arr = message.ToCharArray();
Array.Reverse(arr);
message = new string(arr);
,;;.••';•••.;•:'••;•-.,.\ r e t u r n m e s s a g e ; : V'^v^'-':\::;::,;;:..;^::-i;:-';:.:'.^; :. . . •'• . .
Чтобы однозначно идентифицировать XML-элементы в создаваемом описании
web-службы, необходимо добавить пространство имен. Добавим атрибут webservice
с пространство имен http://www.wrox.com/webservices в класс Service"!. Можно ис-
пользовать любую другую строку, которая идентифицирует XML-элементы уникаль-
ным образом. Так, например, можно использовать для этой цели URL-ссылку на
страницу вашей компании. Причем такая web-ссылка совершенно не обязательно
должна существовать на самом деле; она просто используется ддя уникальной
идентификации. Если вами используется пространство имен, которое основывает-
ся на web-адресе вашей компании, то почти наверняка можно гарантировать, что
никакая другая компания не будет использовать то же пространство имен.
Если вы не задаете никакого пространства имен, то по умолчанию используется
пространство имен http://tempuri.org. Для целей обучения это пространство нас
Web-службы 741
вполне устроит, однако никогда не следует устанавливать реально используемую
web-службу с таким пространством имен.
2. В свете вышесказанного измените пример следующим образом:
[WebService (Namespace=1!http: //www.wrox.c6m/webservices11)]
public class Servicel : System.Web.Services.WebService
3. Теперь можно откомпилировать проект.
Тестирование web-службы
Открыв файл Servicel.asmx
в браузере (его можно запустить
из Visual Studio.NET с помощью
пункта меню Debug | Start Without
Debugging), вы получите перечень
всех методов выбранной web-
службы, как показано на рисунке
справа. В данном случае, служба
обладает только одним методом —
ReverseString().
|£servfceiwebservj
: * » П Г ; Х - ч > • • Q [ f j ^ j { £ P e r s o n a l В * ^ S s a a
- : i . - ,
1 S e r v i c e !
: T h e f o i l o w m g o p e r a t i o n s a r & s u p p o r t e d . F o r s f o r m a
< \
Ш
•J
d e f i n i t i o n , p l e a s e r e v i e w t b e 1 » ^ r v « c e D e ^ c H o t i o n .
; •; ! i ^ i o c d i n t r c - r t
J ^J
^ Г : *
ReverseString
Test
To teii. diti she Iflnirt' button.
'zсюаs "h;;?://ww. u cгrcStг vrз"
ч-»р: Envelope >:lslr.д:>;я^-'r>ltгp://vww.w3.0I:e/iCC"i/X^'Ui^C^•.cз5-Sг-^:.Эlr.Ct;lч Mel п
зйар:К&й'/>
<;Reversestriaff хг.1яя-"Л«&р;//иаи. vr
<KC3r:ti^C>atri ...j--/.-..-^--ir.-;>
I
j
Выбор показаной на экране ссылки
на метод ReverseString повлечет за СО-
бой переход в диалог, позволяющий
проводить тестирование web-службы.
Диалог обладает полями, где можно
редактировать все параметры, переда-
ваемые данному методу,— в рассмат-
риваемом случае, это единственный
параметр.
На этой странице мы также получа-
ем информацию о том, как выглядят
SOAP-вызовы, поступающие от клиен-
та, и ответы, отправляемые сервером.
На рисунке слева приводится пример
использования SOAP, HTTP GET
и HTTP POST.
Нажав кнопку invoke, после
того как в текстовое окно будет
введен текст Hello web services',
мы получим от сервера результат,
представленный на рисунке справа.
Результат имеет тип string, и,
как и предполагалось, это — инвер-
сирование введенной строки.
[ ? » . . . . . :, .. :• -.- • ,,, ч . , . . . . : • • ••-.,: , - , . - , :•
Edit FjpwitK Tods Hi'p - j a
secivreS beW ofleH</s?ang>
I "У : ^uc^ronet
гУ
742 Глава 25
Реализация программы-клиента
Тестовый вариант работает, и теперь создадим Windows-клиента, который смо-
жет воспользоваться этой web-службой. Клиент должен создать SOAP-сообщение,
которое будет отправлено по HTTP-каналу. Это совсем не обязательно выполнять
нам самим. Класс System.Web.Services.Protocols.SoapHttpClientProtocol ВЫПОЛ-
няет всю эту работу скрытно от нас.
Практикум: создание клиентского приложения Windows
;-"*r V"'* 3$
Proej•c_Jt V Ttytup-elis :Basci Proejcts
;C •£>j) VV5isiUu3aCll+ «+Pr oPjeroctetcsts .*•• CCJj OSehlutepr Penrdoej Dctespolyment Proejcts •_J Visual Studio Solutes
ASP.NET Web ASfcHCTWeb Web Control
Арркаёз-а Servxe Ifcr^y
: A project ior erecting or, <з;-р!;с«£>еп vs-ith 6 v; p.oo-.vi; >j5t-r <r£errace
j D:\Bc-ginnirvc] C#\Web Services
Г д-dd to Solution Я* pose SoUicn
Project wJ be created «t D^Beginrvirvg C#\Wob Service5\5л1р1с
1. Создайте новый проект С# —
приложение Windows (см. рис. слева).
2. Добавьте в форму два текстовых
окна и кнопку, как показано
на рисунке ниже. Обработчик
события "щелчок на кнопке"
будет вызывать web-службу.
3. Добавьте web-ссылку, воспользовавшись
пунктом меню Project | Add Web Reference,
и выберите гиперссылку Web References on
Local Service, чтобы перейти к предварительно
8 S e r v i c e l
1
-
1Ш§1—'
.••: - \ •• •' Щ &
' 1
V
j l
R
Й !
созданной web-службе. Теперь,
до того как вы нажмете кнопку
Add Reference (см. рис. слева),
вы можете просматривать контракт
и документацию. Вместо того, чтобы
использовать браузер, вы также
можете непосредственно ввести LJRL
asmx-файла.
[Solution Explorer ~ SJmpleCUent
3 J ^
/Сак: это работает
Теперь можно увидеть новую web-ссылку на localhost,
а также соответствующие документы DISCO и WSDL, кото-
рые были отправлены клиенту (см. рис. справа).
Web-службы 743
В Solution Explorer нельзя увидеть, что был создан новый
класс, в котором реализован посредник на стороне клиента,
преобразующий вызовы методов в формат SOAP. Чтобы про-
смотреть этот класс, необходимо переключиться в окно Class
View. Там можно увидеть, что создано новое пространство
имен, включающее в себя имя сервера, в данном случае —
Jocalhost. Класс servicei является производным от класса
System.Web.Services.Protocols.SoapHttpciientProtocoi
и в нем реализуется метод ReversestringO, предоставляемый
web-службой.
Щелкните Два раза МЫШЬЮ на Методе ReverseStringO,
для того чтобы открыть автоматически сгенерированный файл
servicei.cs. Рассмотрим код, который был создан программой-
мастером.
- шш
ЁЬ о. В5ЕЗЕ*
eh U Jocaiost
fr*jj Services
ф ^ i | &3s«s ar>d Interfaces
h% forrei
// <autogenerated>
// This code was generated by a tool.
// Runtime Version: 1.0.2914.16
/Этот код сгенерирован инструментом./
// Changes to this file may cause incorrect behavior and will be lost if
/Любые изменения, внесенные в этот файл, могут привести
к неправильной работе программы/
// the code is regenerated.
/ и будут потеряны, если код будет сгенерирован повторно./
// </autogenerated>
namespace SimpleClient.localhost {
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using Systern.Web.Services;
[System.Web.Services.WebServiceBindingAttribute(Name="ServiceiSoap",
Namespace="http:7/www.wrox.com/webservices")]
public class Servicei :
System.Web.Services.Protocols.SoapHttpciientProtocoi {
В конструкторе свойству uri присваивается значение web-службы. Это свойство
будет использоваться в классе SoapHttpciientProtocoi для обращения к web-службе:
[System.Diagnostics.DebuggerStepThroughAttribute()]
public Servicei() {
this.Uri = "http://localhost/WebServiceSample/Servicel.asmx*;
Наиболее важным является метод, который собственно и предоставляет web-
служба,— ReversestringO. В данном случае метод имеет тот же самый параметр,
что и в реализации этого метода на сервере. Реализация метода ReverseStringO
на СТброне клиента обращается К методу Invoke О баЗОВОГО класса SoapHttpciient-
Protocoi. Этот метод создает SOAP-сообщение, в котором используется имя
ReverseString И параметр message!
[System.Diagnostics.DebuggerStepThroughAttributeO]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute(
"http://www.wrox.com/webservices/ReverseString*,
RequestNamespace="http://www.wrox.com/webservices",
ResponseNamespace=Hhttp://www.wrox.com/webservices",
744 Глава 25
Use=System.Web.Services.Description.SoapBindingUse.Literal,
ParameterStyle=
System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string ReverseString(string message)
{
object[] results = this.Invoke("ReverseString", new object[]
{message});
return ((string)(results[0]));
Клиент также МОЖеТ ВЫЗЫВатЬ web-СЛужбу аСИНХрОННО. У метода BeginReversestringo
имеются только те параметры, которые отправляются на сервер, а метод
EndReversestringO возвращает полученный результат:
[System.Diagnostics.DebuggerstepThroughAttribute()]
public System.IAsyncResult BeginReverseString(string message,
System.AsyncCallback callback, object asyncState)
{
return this.BeginInvoke(*ReverseString", new object[3 {
message}, callback, asyncState)•;
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
public string EndReverseString(System.IAsyncResult asyncResult)
{
object[] results = this.Endlnvoke(asyncResult);
return ((string)(results[0]));
До этого момента нам не пришлось написать самостоятельно ни единой строки
кода для клиента. Мы создали простой пользовательский интерфейс и использова-
ли меню Add Web Reference для создания класса посредника. Теперь надо связать
их между собой.
4. Добавьте обработчик событий click для кнопки и включите
следующие две строки кода:
private void buttonl_Click(object sender, System.EventArgs e)
{
localhost.Servicel ws = new localhost.Servicel();
textBox2.Text = ws.ReverseString(textBoxl.Text);
Как это работает
В следующей строке мы создаем новый экземпляр класса посредника. Как вид-
но в реализации конструктора, свойству uri присваивается web-служба:
localhost.Servicel ws = new localhost.Servicel();
[Th* qukk brown fox iumpssi ove? th& bzy dogs 1
iuq ehT |
При вызове метода ReversestringO на сервер отправля-
ется SOAP-сообщение, что приводит к вызову web-службы:
textBox2.Text = ws.ReverseString(textBoxl.Text);
Запустив программу, мы получим результат, проиллюст-
рированный на рисунке слева.
Web-службы 745
Реализация клиента ASP.NET
Та же web-служба может быть использована и из клиентского приложения
ASP.NET. Как показано далее, задать ссылку на web-службу можно точно таким
же образом, как и цдя приложения Windows.
Практикум: создание клиентского приложения ASP.NET
*!
JV:W C^r Project*
-*„ j- J>tu pot lta*nd Pr oOejecpt*oiymat Proejcts
[A sn$tf fcr'cnMUig
HI i
C&SLbrfey
•>itz
Г
Pircject Ml b?
J t
c*^
1. Создайте новый проект С# —
ASP.NET Web Application (см. рис. слева).
Назовите проект ASPNETClient.
Добавьте в форму два текстовых окна
и одну кнопку, как показано
на приведенном ниже рисунке.
Мы будем вызывать web-службу
с помощью обработчика событий click
этой кнопки.
2. Точно так же, как мы делали это
для приложения Windows, добавьте web-ссылку
http://localhost/webservicesample/service1.asmx.
3. После добавления web-ссылки снова будет создан класс
посредника. Добавьте обработчик события "щелчок
мышью на кнопке" и введите в него следующую
программу:
private void Buttonl_Click(object sender, System.EventArgs e)
ASPNETClient.localhost.Servicel ws =
new ASPNETClient.localhost.Servicel();
TextBox2.Text = ws.ReverseString(TextBoxl.Text);
}
' ' ' ' feU
! : : : : £
;: >:
;::*o: : :
P&verss Me
•••••••• о •
:;:;:: я:
"sscjge .I : . .: :. .
" • a ':':".:":::;
|a:::: • : : : : : : : : ;
::::::: ;P ::::::::;::
U* lex v
_ j
Heilo Beginning C#
j#C gninnige
^ Local
4. Постройте проект.
5. С помощью пункта меню Debug | Start вы можете
запустить браузер и ввести тестовое сообщение
в первое текстовое окно. Нажав кнопку, вы вызовете
web-службу и получите во втором текстовом окне
перевернутую строку, как показано на рисунке слева.
Использование web-служб в web-приложениях оказывается
таким же простым, как и использование web-служб в прило-
жениях Windows!
746 . . . Глава 25
Итоги
В этой главе мы познакомились с тем, что представляют собой web-службы,
и коротко рассмотрели протоколы, которые используются для работы с ними. Для
того чтобы определить местоположение web-службы и запустить ее, надо выпол-
нить следующее:
• Директория — найти web-службу посредством UDDI
• Обнаружение — выявить web-службы на хорошо известном сервере
• Описание •— WSDL описывает методы и аргументы web-службы
• Вызов — осуществляются независимые от платформы вызовы методов
с использованием протокола SOAP
Мы познакомились с тем, насколько простым оказывается создание web-служб
в Visual Studio.NET, где класс webservice используется для определения соответ-
ствующих методов с помощью атрибута webMethod. Создать клиента, который поль-
зуется услугами web-служб, оказывается таким же простым делом, как и создание
самих web-служб: требуется добавить в клиентский проект web-ссылку и исполь-
зовать посредника. Ядром клиента является класс soapHttpciientProtocol, кото-
рый преобразует вызов метода в SOAP-сообщение.




Категория: информатика | Просмотров: 2861 | Добавил: basic | Рейтинг: 0.0/0
Всего комментариев: 6
6  
http://ukrsud.info Наш портал - информационный сайт, призванный помочь каждому человеку в получении надежных данных по вопросам организации защиты своих прав.
http://ukrsud.info/rishennya-sudu-za-pozovom-tovaristva-z-obmezhenoyu-57 - відповідальністю „Агросвіт
Мы провели обобщения судебной практики Украины.
http://ukrsud.info/reshenie-suda-po-isku-prokurora-g-zhitomira-v - сумме обязательства независимо
Судебная практика включает организацию, процесс и итоги деятельности судов по осуществлению правосудия, но прежде всего объектом ее исследования выступает правоприменительная работа судов, обзор качества судебной работы.
http://ukrsud.info/reshenie-suda-po-isku-gosudarstvennogo-27 - на их удовлетворении
Благодаря использованию современных поисковых технологий, у Вас есть возможность без задержек ознакомиться с имеющейся судебной практикой по подобным делам и произвести вывод, в чью пользу складывается современная украинская судебная практика.
http://ukrsud.info/reshenie-suda-po-isku-otkrytogo-akcionernogo-118 - уплатить деньги и т

5  
http://www.med4sale.net #BA - http://i47.tinypic.com/2mo7af6.png
So, we’ve already established that Searle’s clinical trials and the FDA’s approval of Oxandrolone established it as a mild anabolic, designed to maintain and promote lean tissue growth or maintenance.
http://www.fitness-drugs.com #ma - anabolic
We’ve also established that Oxandrolone is so mild in terms of its side effects that women and even children were included as subjects in the clinical trials, and that it was approved for their use as well.

4  
Корчась и извиваясь под губительными лучами лицемерия, погружаясь в пучину немого равнодушия, я сотрясаю воздух избитыми фразами, и тону в океане человеческой глупости.http://touch2game.ru - ..

3  
Корчась и извиваваясь под губительными лучами лицемерия, погружаясь в пучину немого равнодушия, я сотрясаю воздух избитыми фразами, и тону в океане человеческой глупости.http://touch2game.ru - ..

2  
(http://www.all-video-online.com) качать фильмы бесплатно и еще много всего самого интересного из кино индустрии! На страницах нашего онлайн кинотеатра вы всегда найдете самые свежие новинки кинопроката.

1  
Привет
Я здесь новичек. Хотел попросить совета. Надоели вирусы и всякая ерунда на онлайн видео порталах
Можете посоветовать. Кинуть ссылку. Где? Что? И как? Всем заранее спасибо

Имя *:
Email *:
Код *:
Календарь
«  Февраль 2010  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

krutoto.ucoz.ru
Бесплатный конструктор сайтов - uCoz