C#开发和调用Web Service

Web Service基本概念

  Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

  XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

  Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

  WSDL:(Web Services Description Language) WSDL 文件是一个XML文档,用于说明一组SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

  UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

Web Service开发

  .net平台内建了对Web Service的支持,包括Web Service的构建和使用。与其它开发平台不同,使用.net平台,你不需要其他的工具或者SDK就可以完成Web Service的开发了。.net Framework本身就全面支持Web Service,包括服务器端的请求处理器和对客户端发送和接受SOAP消息的支持。下来我们就一步一步的用Microsoft Visual Studio .net 2005(后面简称VS.Net 2005)创建和使用一个简单的Web Service。

  1、新建web服务(vs2013)

2、打开Service.cs文件  修改成如下图所示:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.Services;
 6
 7 /// <summary>
 8 /// WebService 的摘要说明
 9 /// </summary>
10 [WebService(Namespace = "TextWebService")]
11 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
12 // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
13 // [System.Web.Script.Services.ScriptService]
14 public class WebService : System.Web.Services.WebService {
15
16     public WebService () {
17
18         //如果使用设计的组件,请取消注释以下行
19         //InitializeComponent();
20     }
21
22     [WebMethod]
23     public string HelloWorld() {
24         return "Hello World";
25     }
26     [WebMethod(Description="获取姓名")]
27     public string GetName()
28     {
29         return "wangming";
30     }
31     [WebMethod(Description = "求和的方法")]
32     public double Add(double i,double j)
33     {
34         return i + j;
35     }
36     [WebMethod(Description = "求差的方法")]
37     public double subtract(double i, double j)
38     {
39         return i - j;
40     }
41     [WebMethod(Description = "求积的方法")]
42     public double multiplication(double i, double j)
43     {
44         return i * j;
45     }
46     [WebMethod(Description = "求商的方法")]
47     public double division(double i, double j)
48     {
49         if (j != 0)
50         {
51             return i / j;
52         }
53         else
54         {
55             return 0;
56         }
57     }
58     //[WebMethod(Description = "连接数据库")]
59     //public void ConntDatabase(string connStr)
60     //{
61
62     //}
63 }

3、webservice的发布

  在项目上点击右键,点击菜单中的发布

3、开始运行Service.asmx 文件

4、添加引用

点击高级,如下图所示:

至此,添加引用完成。

下面介绍一下webservice的调用:

新建一个网页页面,添加几个控件:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2
 3 <!DOCTYPE html>
 4
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title>Webservice调用实例</title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <asp:TextBox ID="Num1" runat="server"></asp:TextBox>
14             <select id="selectOper" runat="server">
15                 <option>+</option>
16                 <option>-</option>
17                 <option>*</option>
18                 <option>/</option>
19             </select>
20             <asp:TextBox ID="Num2" runat="server"></asp:TextBox>
21             <span id="E" runat="server">=</span>
22             <asp:TextBox ID="Result" runat="server"></asp:TextBox>
23             <br />
24 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
25             <asp:Button ID="Button_Submitt" runat="server" OnClick="Button_Submitt_Click" Text="Submitt" />
26         </div>
27     </form>
28 </body>
29 </html>

后台代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Web.UI;
 6 using System.Web.UI.WebControls;
 7
 8 public partial class _Default : System.Web.UI.Page
 9 {
10     protected void Page_Load(object sender, EventArgs e)
11     {
12     }
13     protected void Button_Submitt_Click(object sender, EventArgs e)
14     {
15         if (Num1.Text != "" && Num2.Text != "")
16         {
17             double i = Convert.ToDouble(Num1.Text.ToString());
18             double j = Convert.ToDouble(Num2.Text.ToString());
19
20             //实例化WebService实例对象
21             localhost.WebService WebserviceInstance = new localhost.WebService();
22             int Oper = selectOper.SelectedIndex;
23             switch (Oper)
24             {
25                 case 0:
26                     Result.Text = WebserviceInstance.Add(i,j).ToString();
27                     break;
28                 case 1:
29                     Result.Text = WebserviceInstance.subtract(i,j).ToString();
30                     break;
31                 case 2:
32                     Result.Text = WebserviceInstance.multiplication(i, j).ToString();
33                     break;
34                 case 3:
35                     Result.Text = WebserviceInstance.division(i,j).ToString();
36                     break;
37             }
38         }
39     }
40 }

  到此一个一个简单的WebService的开发和调用就已经完成了,在实际应用中可以根据自己的需要,写一些功能强大的,复杂的WebService,不管多么复杂,整个流程都是这样的。

参考:http://blog.csdn.net/h0322/article/details/4776819

时间: 2024-11-05 05:30:53

C#开发和调用Web Service的相关文章

[Teamcenter 2007 开发实战] 调用web service

前言 在TC的服务端开发中, 可以使用gsoap 来调用web service. 如何使用 gsoap  , 参考 gsoap 实现 C/C++ 调用web service 接下来介绍如何在TC中进行开发. 开发的方式与环境搭建 在TC的CF端调用webservice , 可以把gsoap 产生和完成的代码打成一个  .lib 的文件(windows, 在linux 下是 .a 的文件) 这里使用的开发工具是 visual studio . 新建一个空的项目, 语言选 C++的就可以了 创建完成

Android开发之使用Web Service进行网络编程

使用Web Service进行网络编程 Android应用通常都是执行在手机平台上.手机系统的硬件资源是有限的,无论是存储能力还是计算能力都有限.在Android系统上开发.执行一些单用户.小型应用是可能的, 但对于须要进行大量的数据处理.复杂计算的应用.还是仅仅能部署在远程server上,Android应用将仅仅是充当这些应用的client. 为了让Android应用与远程server之间进行交互,能够借助子Java的RMI技术,但这要求远程server程序必须採用Java实现:也能够借助于C

php5调用web service

工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经包含了处理soap的模块,但是资料太少了,上php官网上查帮助,写的不是很容易理解,经过多次实践,终于搞清楚了,php调用web service还是非常简单的.下面用一个例子说明: extension=php_openssl.dll extension=php_soap.dll php.ini 这2

Android---56---Android应用调用Web Service/号码归属地查询

使用Android应用调用Web Service 需要工具: ksoap2-android 下载地址:http://pan.baidu.com/s/1jGL6b10 build path将ksoap2-android 添加到项目工程中 先将ksoap2-android 包导入 libs目录下,右键build path -> add to build path 点击项目工程名,右键 build path -> configure build path 在ksoap2-android这个包前面打上

使用CXF开发简单的Web Service

使用CXF开发简单的Web Service 博文我们介绍了Web Service的基本概念,了解它的基本概念之后,我们这篇博文介绍一个开源的WebService框架-Apache CXF,并实现一个HelloWorld实例. 一.开始之前 SOA目前已经成为了人人皆知的热点,SOA是面向服务的架构,SOA的重点在于服务的重用,即Service1+Service2+Service3,所有的组件都是"即插即用"的.SOA是由IBM提倡的架构,希望以"组装电脑"的方式开发

ORACLE存储过程调用Web Service

1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sql service,调用web service的方法这里就不做介绍了,本文主要用来介绍oracle存储过程调用Web Service的方法. 众所周知,在Web Service通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明

gsoap 实现 C/C++ 调用web service

gSOAP 是什么? gSOAP编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多.绝大多数的C++web服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库.与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来. 简单来说,  gSOAP 功能之一就是可以帮助我们使用C/C++调用web

C# 调用 Web Service

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册. XML:(Extensible Markup Language)扩展型可标记语言.面向短期的临时数据处理.面向万维网络,是Soap的基础. Soap:(Simple Object Access Protocol)简单对象存

JAVA 调用Web Service的方法(转载)

JAVA 调用Web Service的方法 1.使用HttpClient 用到的jar文件:commons-httpclient-3.1.jar 方法: 预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. String soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +     "<soap12: