WebService开发应用
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开发应用的更多相关文章
- WebService中方法的相关注意事项
2014-11-14 在WebService中定义方法,有一些注意的地方: (1) 方法上面需要增加 [WebMethod] 属性,标志该方法是一个WebService方法: (2)方法的返回值可以为 ...
- XE5 ANDROID平台 调用 webservice
服务端需要midas.dll XE5对android的平台支持很有吸引力,虽然目前用来直接开发应用到安卓市场卖赚钱可能性估计不大(安卓市场目前国内好像都是免费的天下),但是对于企业应用很是很有帮助 ...
- webservice第二篇【自定义webservice服务、soa、uddi概念、soap协议】
自定义webservice服务 我们在上一章节中已经使用wsimport生成本地代理来调用webservice的服务了,其实我们自己写的web应用程序也是可以发布webservice的 我们发布了we ...
- WebService就是这么简单
WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我们的网站需要提供一个天气预报这样一个需求的话,那我们该怎么做????? 天气预报这么 ...
- webservice入门简介
为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...
- java之WebService
链接:https://www.jianshu.com/p/1c145315da47 WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果我 ...
- webService
什么是webService WebService,顾名思义就是基于Web的服务.它使用Web(HTTP)方式,接收和响应外部系统的某种请求.从而实现远程调用. 1:从WebService的工作模式上 ...
- 开始webservice了
一.WebService到底是什么 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用 ...
- Spring WebService入门
Web service是一个平台独立的,低耦合的,自包含的.基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述.发布.发现.协调和配置这些应用程序,用于开发分布 ...
随机推荐
- 20151209jquery学习笔记Ajax 代码备份
/*$(function () { $("input").click(function() { $.ajax({ type:'POST', url:'test.php', data ...
- 状态栏通知Notification的简单使用
今天在学习Notification时同时参考了一些相关的博客,现在结合自身学习实际来总结一下. 在使用手机时,当有未接来电或者短消息时,通常会在手机屏幕上的状态栏上显示.而在Android中有提醒功能 ...
- No application 'meetme' for extension 错误
在asterisk中搭建简单会议室,在extensions.conf中执行到 exten => 18,n,MeetMe(18,p) asterisk控制台提示:Aug 6 8:28:41 WAR ...
- javax.el.PropertyNotFoundException: Property 'aDesc' not found on type
这个问题是是在我使用jeesite自动代码是产生的,原因是实体类的属性命名规范不合格,我在网上看到类的属性前三个字母不能出现大写 解决办法:将类的属性大小写改一下
- 每天一条linux命令——crontab
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查 ...
- ps -aux
~]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 2900 852 ? Ss 11:49 ...
- SQLServer数据库 导出表和导入sql脚本
1.选择需要导出表的数据库--任务---生成脚本 2.显示:生成和发布脚本窗口--简介(某些可能关闭该页面的,可以省略该步骤),点击下一步 3.显示:生成和发布脚本窗口--选择对象--按照图片操作即可 ...
- 在 Linux 命令行中使用和执行 PHP 代码
PHP是一个开源服务器端脚本语言,最初这三个字母代表的是“Personal Home Page”,而现在则代表的是“PHP:Hypertext Preprocessor”,它是个递归首字母缩写.它是一 ...
- uboot的mkconfig分析
uboot的mkconfig是一个shell脚本.对于笔者这种Linux学习初学者,不太可能认真的把shell脚本学习一遍.但是,倘若不能理解mkconfig的含义,又很难从整体的理解uboot(我认 ...
- 配置mybatis错误总结
### The error may exist in SQL Mapper Configuration ### Cause: org.apache.ibatis.builder.BuilderExce ...