WebService是运行于服务端(一般放在信息服务器上的)让客户端来调用的。

以下开发两个简单的实例

1.自己开发服务端自己调用(vs2010)

1).菜单:“新建-项目”,在打开的窗体中选择,如下图:

2).在“项目解决方案”中右击此项目并“添加-新建项”,然后选择"web服务",如下图

3).打开新添加的页面,在其中加入四个函数,一定在四个函数的上方加上“[WebMethod]”,这是说明让客户端来调用的函数,如果上面没有或注释掉,就表示客户端不能访问它。下面把它默认的HelloWord函数注释,源码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services; namespace MyWebServices
{
/// <summary>
/// WebService1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{ //[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod(Description="相加")]
public double Add(double num1, double num2)
{
return num1 + num2;
} [WebMethod(Description = "相减")]
public double Sub(double num1, double num2)
{
return num1 - num2;
} [WebMethod(Description = "相乘")]
public double Mul(double num1, double num2)
{
return num1 * num2;
} [WebMethod(Description = "相除")]
public double Div(double num1, double num2)
{
if (num2 != )
return num1 / num2;
else
return ;
}
}
}

4).在浏览器中运行WebService1.asmx,即在“解决方案”中右键WebService1.asmx,在"浏览器中运行",以下为运行图,会发现HelloWord函数没显示出来

5).开发客户端。

  • 建立一空的WebApplication程序
  • 在“解决方案”中右键此项目“添加web引用”,会弹出一窗体,让用户输入wsdl的URL.设置Web引用名的名称并点击添加引用,此时会在项目中出现一个这样服务的图标。如下图:
  • 增加一webForm,它的HTML源码为:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div> <input id="Text1" type="text" runat="Server" /><select id="Select1" name="D1" runat="Server" >
<option>+</option>
<option>-</option>
<option>*</option>
<option>/</option>
</select><input id="Text2" type="text" runat="Server" /><asp:Button ID="Button1"
runat="server" Text="=" onclick="Button1_Click" />
<input id="Text3" type="text" runat="Server" /></div>
</form>
</body>
</html>

cs源码(按钮事件):

 protected void Button1_Click(object sender, EventArgs e)
{
string op = Select1.Value;
if (Text1.Value == string.Empty || Text2.Value == string.Empty)
return;
double num1 = double.Parse(Text1.Value);
double num2 = double.Parse(Text2.Value);
double result=;
MyTest.WebService1 ws=new MyTest.WebService1();
if (op.Equals("+"))
result = ws.Add(num1, num2);
else if (op.Equals("-"))
result = ws.Sub(num1, num2);
else if (op.Equals("*"))
result = ws.Mul(num1, num2);
else if (op.Equals("/"))
result = ws.Div(num1, num2);
Text3.Value = result.ToString(); }
  • 运行客户端,如下图,此时成功运行:

2.调用其它的WebService服务,此例我们调用http://www.webxml.com.cn中的查询手机号码的服务,打开此网站下的"全部WebService",可以看到如下图:

1).新建 一个普通的WinForm程序,界面如下:

2).在新建的项目上右键"添加服务引用",在地址栏上粘贴http://www.webxml.com.cn中手机查询服务中的随便一个地址,命名空间自己设置,如下图:

3).点击上图中的“确定”按钮,此时会把这个相关的服务加入到此项目中,如图:

4).在winForm中的button源码如下:

        private void button1_Click(object sender, EventArgs e)
{
ServiceReference1.MobileCodeWSSoapClient mms = new ServiceReference1.MobileCodeWSSoapClient("MobileCodeWSSoap12"); *
string s= mms.getMobileCodeInfo(this.textBox1.Text.Trim(),"");
MessageBox.Show(s); }

*号处的参数是说明用soap的哪种协议的,我们在添加webservice服务后会自动增加一个app.config文件,打开此文件会在文件下面看到如下的代码:

<client>
<endpoint address="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"
binding="basicHttpBinding" bindingConfiguration="MobileCodeWSSoap"
contract="ServiceReference1.MobileCodeWSSoap" name="MobileCodeWSSoap" />
<endpoint address="http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"
binding="customBinding" bindingConfiguration="MobileCodeWSSoap12"
contract="ServiceReference1.MobileCodeWSSoap" name="MobileCodeWSSoap12" />
</client>

此参数输入name的值就可以了。

5).运行效果图:

终结:

在调用时先引用WebService服务,再创建它的实例,然后再调用它的函数即可。

WebService开发应用的更多相关文章

  1. WebService中方法的相关注意事项

    2014-11-14 在WebService中定义方法,有一些注意的地方: (1) 方法上面需要增加 [WebMethod] 属性,标志该方法是一个WebService方法: (2)方法的返回值可以为 ...

  2. XE5 ANDROID平台 调用 webservice

    服务端需要midas.dll   XE5对android的平台支持很有吸引力,虽然目前用来直接开发应用到安卓市场卖赚钱可能性估计不大(安卓市场目前国内好像都是免费的天下),但是对于企业应用很是很有帮助 ...

  3. webservice第二篇【自定义webservice服务、soa、uddi概念、soap协议】

    自定义webservice服务 我们在上一章节中已经使用wsimport生成本地代理来调用webservice的服务了,其实我们自己写的web应用程序也是可以发布webservice的 我们发布了we ...

  4. WebService就是这么简单

    WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那我们该怎么做????? 天气预报这么 ...

  5. webservice入门简介

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...

  6. java之WebService

    链接:https://www.jianshu.com/p/1c145315da47 WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我 ...

  7. webService

    什么是webService WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用.  1:从WebService的工作模式上 ...

  8. 开始webservice了

    一.WebService到底是什么 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用 ...

  9. Spring WebService入门

    Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...

随机推荐

  1. (转)ASP.net中Timer无刷新定时器.

    Timer控件要实现无刷新,得用到ajax技术 首先得添加一个ScriptManager控件,然后再添加一个UpdatePanel用于存放Timer控件内容的,就可以实现无刷新了.下面是详细的内容: ...

  2. MVC小系列(十六)【在控制器级别或具体Action级别上动态设定模板页(Layout)】

    方法就是使用:ActionFilterAttribute它的几个方法:OnActionExecuted,OnActionExecuting,OnResultExecuted和OnResultExecu ...

  3. FOR XML PATH 转换问题

    以下我带大家了解关于 FOR XML PATH 首先我们看下所熟悉的表数据 之后转换 <骨牌编号>1</骨牌编号> <骨牌颜色>橙</骨牌颜色> < ...

  4. 有理数类 Java

    public class Rational extends Number implements Comparable { private long numerator;// 分子 private lo ...

  5. Jquery为下拉列表动态赋值与取值,取索引

    接触前端也不久对jquery用的也只是皮毛,写过去感觉能复用的发出来,大家指点下 1.下拉列表动态赋值 function initddlYear() { var mydate = new Date() ...

  6. jenkins(二)项目构建

    通过上一篇“jenkins(一)集成环境搭建示例”,已经完成了jenkins的安装,基本配置,启动,下面继续小结jenkins使用 一.jenkins系统配置 访问jenkins,点击系统管理-> ...

  7. phaser源码解析(一) Phaser.Utils类下shuffle方法

    /** * #一个 基于 费雪耶茨排列 洗牌方法 * A standard Fisher-Yates Array shuffle implementation. * @method Phaser.Ut ...

  8. 初次使用JFinal

    刚进公司的时候是经过了学员期培训,不断的学习. 终于有机会可以进入了项目组,一个给予.NET开发的项目,框架是MVC,三个多月的项目在一个团队的合作下完成了一个正式成为程序员后参与的第一个大型项目. ...

  9. C#(pronounced: see sharp) 与 .NET

    C#与.NET 一.什么是C# 这里的「#/♯」读作「sharp」,意思是「(Music, other)  (immediately postpositive) denoting a note tha ...

  10. Codevs 3269 混合背包(二进制优化)

    3269 混合背包 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 传送门 题目描述 Description 背包体积为V ,给出N个物品,每个物品占用体积为V ...