Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Создание веб-службы в ASPNET. ⇐ ПредыдущаяСтр 4 из 4
Лабораторная работа №6
Цель работы: знакомство с инструментом разработки ASP.NET веб-служб в среде Microsoft Visual Studio. Рассмотрим в качестве примера создание с помощью ASP.NET веб-службы, которая переводит любое целое десятичное число в один из форматов по выбору: двоичный, восьмеричный, десятичный.
Программная логика веб-службы будет реализована на языке C# в CodeBehind файле Service1.asmx.cs: using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Web; using System.Web.Services; using System.Web.Services.Protocols;
namespace ASPNETCalcWebService { /// <summary> /// Summary description for Service1 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [ToolboxItem(false)] public class Service1: System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } } }
3. using System; 4. using System.Collections; 5. using System.ComponentModel; 6. using System.Data; 7. using System.Web; 8. using System.Web.Services; 9. using System.Web.Services.Protocols; 10. 11. namespace ASPNETCalcWebService 12. { 13. /// <summary> 14. /// Summary description for Service1 15. /// </summary> 16. [WebService(Namespace = "http://tempuri.org/")] 17. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 18. [ToolboxItem(false)] 19. public class Service1: System.Web.Services.WebService 20. { 21. //Uncomment the following line if using designed components 22. //InitializeComponent(); 23. } 24. 25. // Преобразование в двоичную систему счисления 26. 27. [WebMethod] 28. public string Binary(int x) { 29. return Convert.ToString(x, 2); 30. } 31. 32. // Преобразование в восьмеричную систему счисления 33. 34. [WebMethod] 35. public string Octal(int x) 36. { 37. return Convert.ToString(x, 8); 38. } 39. 40. // Преобразование в шестнадцатиричную систему счисления 41. 42. [WebMethod] 43. public string Hexadecimal(int x) 44. { 45. return Convert.ToString(x, 16); 46. } } Атрибут WebMethod в этом файле указывает на то, что описываемый метод должен быть доступен по протоколу HTTP для пользователей. Откомпилируйте и запустите проекта. В результате в браузере должна следующая страница
Активируйте гиперссылку "Описание службы". В окне браузера должно появиться описание веб-службы в формате WSDL 47. <?xml version="1.0" encoding="utf-8"?> 48. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 49. xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" 50. xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 51. xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 52. xmlns:tns="http://tempuri.org/" 53. xmlns:s="http://www.w3.org/2001/XMLSchema" 54. xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 55. xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 56. targetNamespace="http://tempuri.org/" 57. xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> 58. <wsdl:types> 59. <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> 60. <s:element name="Binary"> 61. <s:complexType> 62. <s:sequence> 63. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> 64. </s:sequence> 65. </s:complexType> 66. </s:element> 67. <s:element name="BinaryResponse"> 68. <s:complexType> 69. <s:sequence> 70. <s:element minOccurs="0" maxOccurs="1" name="BinaryResult" type="s:string" /> 71. </s:sequence> 72. </s:complexType> 73. </s:element> 74. <s:element name="Octal"> 75. <s:complexType> 76. <s:sequence> 77. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> 78. </s:sequence> 79. </s:complexType> 80. </s:element> 81. <s:element name="OctalResponse"> 82. <s:complexType> 83. <s:sequence> 84. <s:element minOccurs="0" maxOccurs="1" name="OctalResult" type="s:string" /> 85. </s:sequence> 86. </s:complexType> 87. </s:element> 88. <s:element name="Hexadecimal"> 89. <s:complexType> 90. <s:sequence> 91. <s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /> 92. </s:sequence> 93. </s:complexType> 94. </s:element> 95. <s:element name="HexadecimalResponse"> 96. <s:complexType> 97. <s:sequence> 98. <s:element minOccurs="0" maxOccurs="1" name="HexadecimalResult" type="s:string" /> 99. </s:sequence> 100. </s:complexType> 101. </s:element> 102. </s:schema> 103. </wsdl:types> 104. <wsdl:message name="BinarySoapIn"> 105. <wsdl:part name="parameters" element="tns:Binary" /> 106. </wsdl:message> 107. <wsdl:message name="BinarySoapOut"> 108. <wsdl:part name="parameters" element="tns:BinaryResponse" /> 109. </wsdl:message> 110. <wsdl:message name="OctalSoapIn"> 111. <wsdl:part name="parameters" element="tns:Octal" /> 112. </wsdl:message> 113. <wsdl:message name="OctalSoapOut"> 114. <wsdl:part name="parameters" element="tns:OctalResponse" /> 115. </wsdl:message> 116. <wsdl:message name="HexadecimalSoapIn"> 117. <wsdl:part name="parameters" element="tns:Hexadecimal" /> 118. </wsdl:message> 119. <wsdl:message name="HexadecimalSoapOut"> 120. <wsdl:part name="parameters" element="tns:HexadecimalResponse" /> 121. </wsdl:message> 122. <wsdl:portType name="ServiceSoap"> 123. <wsdl:operation name="Binary"> 124. <wsdl:input message="tns:BinarySoapIn" /> 125. <wsdl:output message="tns:BinarySoapOut" /> 126. </wsdl:operation> 127. <wsdl:operation name="Octal"> 128. <wsdl:input message="tns:OctalSoapIn" /> 129. <wsdl:output message="tns:OctalSoapOut" /> 130. </wsdl:operation> 131. <wsdl:operation name="Hexadecimal"> 132. <wsdl:input message="tns:HexadecimalSoapIn" /> 133. <wsdl:output message="tns:HexadecimalSoapOut" /> 134. </wsdl:operation> 135. </wsdl:portType> 136. <wsdl:binding name="ServiceSoap" type="tns:ServiceSoap"> 137. <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> 138. <wsdl:operation name="Binary"> 139. <soap:operation soapAction="http://tempuri.org/Binary" style="document" /> 140. <wsdl:input> 141. <soap:body use="literal" /> 142. </wsdl:input> 143. <wsdl:output> 144. <soap:body use="literal" /> 145. </wsdl:output> 146. </wsdl:operation> 147. <wsdl:operation name="Octal"> 148. <soap:operation soapAction="http://tempuri.org/Octal" style="document" /> 149. <wsdl:input> 150. <soap:body use="literal" /> 151. </wsdl:input> 152. <wsdl:output> 153. <soap:body use="literal" /> 154. </wsdl:output> 155. </wsdl:operation> 156. <wsdl:operation name="Hexadecimal"> 157. <soap:operation soapAction="http://tempuri.org/Hexadecimal" style="document" /> 158. <wsdl:input> 159. <soap:body use="literal" /> 160. </wsdl:input> 161. <wsdl:output> 162. <soap:body use="literal" /> 163. </wsdl:output> 164. </wsdl:operation> 165. </wsdl:binding> 166. <wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap"> 167. <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> 168. <wsdl:operation name="Binary"> 169. <soap12:operation soapAction="http://tempuri.org/Binary" style="document" /> 170. <wsdl:input> 171. <soap12:body use="literal" /> 172. </wsdl:input> 173. <wsdl:output> 174. <soap12:body use="literal" /> 175. </wsdl:output> 176. </wsdl:operation> 177. <wsdl:operation name="Octal"> 178. <soap12:operation soapAction="http://tempuri.org/Octal" style="document" /> 179. <wsdl:input> 180. <soap12:body use="literal" /> 181. </wsdl:input> 182. <wsdl:output> 183. <soap12:body use="literal" /> 184. </wsdl:output> 185. </wsdl:operation> 186. <wsdl:operation name="Hexadecimal"> 187. <soap12:operation soapAction="http://tempuri.org/Hexadecimal" style="document" /> 188. <wsdl:input> 189. <soap12:body use="literal" /> 190. </wsdl:input> 191. <wsdl:output> 192. <soap12:body use="literal" /> 193. </wsdl:output> 194. </wsdl:operation> 195. </wsdl:binding> 196. <wsdl:service name="Service"> 197. <wsdl:port name="ServiceSoap" binding="tns:ServiceSoap"> 198. <soap:address location="http://localhost/NumConvert/Service.asmx" /> 199. </wsdl:port> 200. <wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12"> 201. <soap12:address location="http://localhost/NumConvert/Service.asmx" /> 202. </wsdl:port> 203. </wsdl:service> </wsdl:definitions> Если необходимо сообщить более подробную информацию для пользователей по каждому из доступных в этой веб-службе методов достаточно будет добавить параметр Description в атрибуте WebMethod, например: [WebMethod (Description = "Перевод целого числа в двоичную систему счисления")] public string Binary(int x) { return Convert.ToString(x, 2); } В результате в браузере будет получена следующая страница:
Выберите метод Binary. При этом должна загрузиться веб-страница вида:
В результате работы веб-службы (после ввода числа и нажатия кнопки "Запуск") будет создана загрузится следующая страница:
Задание на лабораторную работу: Создайте ASP.NET веб-службу, поддерживающую три метода, возвращающие соответственно название текущего дня недели, номер текущего дня в месяце, номер текущего дня в году. Для получения необходимых данных на стороне сервера можно использовать свойства и методы: Label1.Text = DateTime.Now.DayOfWeek.ToString(); Label1.Text = DateTime.Now.Day.ToString(); Label1.Text = DateTime.Now.DayOfYear.ToString();
Date: 2016-07-05; view: 507; Нарушение авторских прав |