调用WebService接口
对于初学者来说,在vs2012环境中,大家有可能不知道Web References文件夹是如何来的,它是通过右击项目,选择其中的”添加服务引用“,如图所示:
之后,得到”添加服务引用“的页面,我也把图截了下来,如图:
再选择”高级“按钮,进入下图
根据上图的指示,在URL这栏输入互联网上公开的WebServices(http://www.webxml.com.cn/WebServices/WeatherWebService.asmx)来实现天气预报。这样就可以通过代码来获取用户输入城市的天气了。实现的效果图如下:
通过点击按钮,系统会输出用户所填城市的天气信息。后台代码如下:
[code]protected void Button2_Click(object sender, EventArgs e){WebApplication1.cn.com.webxml.www.WeatherWebService ws = new WebApplication1.cn.com.webxml.www.WeatherWebService();string[] r = ws.getWeatherbyCityName(this.TextBox4.Text);this.TextBox3.Text = \"\";if (r == null){this.TextBox3.Text = \"无\" + this.TextBox4.Text + \"城市的天气信息\";return;}foreach (string i in r){this.TextBox3.Text += i;}}
创建WebService接口
我们选中一个项目,右击新建一个“Web服务”,如下图所示:
完成创建以后,就会在项目文件中出现“Service.asmx”文件,我们在Service.asmx.cx中添加一个简单的求和方法,代码如下:
[code]namespace Web_Service{/// <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]public int GetSum(int a,int b){return a+b;}}}
那么,我们怎么在其它项目中调用这个方法呢,其实这和刚才我们所说的,调用天气的webservice是一个道理,首先,通过添加“web服务引用”将,你写的webservice引用进来,我们需要注意的是其中有一处要我们填写请求webservice的URL地址,我们该怎么写?其实呢,也很简单,就是,你将Service.asms在浏览器中浏览的地址,如我的是:http://localhost:12197/Service.asmx。
引用完成后,我们通过代码来实现它,首先还是来看下运行后的效果图:
最后,再贴上代码:
[code]protected void Button1_Click(object sender, EventArgs e){WebApplication1.localhost.WebService1 aa = new WebApplication1.localhost.WebService1();this.Label1.Text = aa.GetSum(Convert.ToInt32(this.TextBox1.Text), Convert.ToInt32(this.TextBox2.Text)).ToString();}