1.创建Webservice服务应用程序

方式一:将VS2010采用的默认框架,改为使用框架.NET Framework2.0\3.0\3.5,这时新建"项目"or新建"网站"就可以找到需要的"ASP.NET WebService模板"来建立WebService了。

方式二:创建空的web应用程序项目,新建项选择Web服务。

2.添加WebService代码。代码使用方式和功能已含在代码注释中

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Services;
  6.  
  7. namespace WebServiceByEmptyWeb
  8. {
  9. /// <summary>
  10. /// WebService1 的摘要说明
  11. /// </summary>
  12. [WebService(Namespace = "HwSoft")]
  13. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  14. [System.ComponentModel.ToolboxItem(false)]
  15. // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
  16. // [System.Web.Script.Services.ScriptService]
  17. public class WebService1 : System.Web.Services.WebService
  18. {
  19.  
  20. //[WebMethod]
  21. //public string HelloWorld()
  22. //{
  23. // return "Hello World";
  24. //}
  25.  
  26. //只有加WebMethod特性的方法才能被引用
  27. [WebMethod(Description = "求和的方法")]
  28. public double addition(double number1,double number2)
  29. {
  30. return number1 + number2;
  31. }
  32.  
  33. [WebMethod(Description="求差的方法")]
  34. public double subtraction(double number1, double number2)
  35. {
  36. return number1 - number2;
  37. }
  38.  
  39. [WebMethod(Description=("求积的方法"))]
  40. public double multiplication(double number1, double number2)
  41. {
  42. return number1 * number2;
  43. }
  44.  
  45. [WebMethod(Description="求商的方法")]
  46. public double division(double number1, double number2)
  47. {
  48. if (number2 != )
  49. {
  50. return number1 / number2;
  51. }
  52. else
  53. return -;
  54. }
  55. }
  56. }

3.用web测试webservice
创建web网站项目后添加【添加Web引用】。注意Web引用名,调用WebService使用

web网站测试代码:

前台:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml">
  5. <head runat="server">
  6. <title></title>
  7. </head>
  8. <body>
  9. <form id="form1" runat="server">
  10. <div>
  11. <asp:TextBox ID="Num1" runat="server"></asp:TextBox>
  12. <asp:DropDownList ID="ddlOperator" runat="server">
  13. <asp:ListItem Text="+" Value="add"></asp:ListItem>
  14. <asp:ListItem Text="-" Value="sub"></asp:ListItem>
  15. <asp:ListItem Text="*" Value="mul"></asp:ListItem>
  16. <asp:ListItem Text="/" Value="div"></asp:ListItem>
  17. </asp:DropDownList>
  18.  
  19. <asp:TextBox ID="Num2" runat="server"></asp:TextBox>
  20. <span id="E" runat="server"></span>
  21. <asp:TextBox ID="Result" runat="server"></asp:TextBox>
  22. </div>
  23. </form>
  24. </body>
  25. </html>

C#后台代码

  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. Button btn = new Button();
  14. btn.Text = "=";
  15. btn.Width = ;
  16. btn.Click += new EventHandler(btn_Click);
  17. E.Controls.Add(btn);
  18. }
  19.  
  20. protected void btn_Click(object sender, EventArgs e)
  21. {
  22. if (Num1.Text != "" && Num2.Text != "")
  23. {
  24. localhost.WebService1 webservice = new localhost.WebService1();
  25. string operate = ddlOperator.SelectedValue;
  26. double number1 = double.Parse(Num1.Text );
  27. double number2 = double.Parse(Num2.Text);
  28. switch (operate)
  29. {
  30. case "add":
  31. Result.Text = webservice.addition(number1,number2).ToString("F2");
  32. break;
  33. case "sub":
  34. Result.Text =webservice.subtraction(number1,number2).ToString("F2");
  35. break;
  36. case "mul":
  37. Result.Text = webservice.multiplication(number1,number2).ToString("F2");
  38. break;
  39. case "div":
  40. Result.Text = webservice.division(number1,number2).ToString("F2");
  41. break;
  42. }
  43. }
  44. }
  45. }

4.添加其他类型的Webservice

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.Services;
  6. using System.Data;
  7. using System.ComponentModel;
  8.  
  9. namespace WebServiceByEmptyWeb
  10. {
  11. /// <summary>
  12. /// OtherTypeWebServices 的摘要说明
  13. /// </summary>
  14. [WebService(Namespace = "HwSoft")]
  15. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
  16. [System.ComponentModel.ToolboxItem(false)]
  17. // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
  18. // [System.Web.Script.Services.ScriptService]
  19. public class OtherTypeWebServices : System.Web.Services.WebService
  20. {
  21. public OtherTypeWebServices()
  22. {
  23. //CODEGEN: 该调用是 ASP.NET Web 服务设计器所必需的
  24. InitializeComponent();
  25. }
  26.  
  27. //Web 服务设计器所必需的
  28. private IContainer components = null;
  29.  
  30. /// <summary>
  31. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  32. /// 此方法的内容。
  33. /// </summary>
  34. private void InitializeComponent()
  35. {
  36. }
  37.  
  38. /// <summary>
  39. /// 清理所有正在使用的资源。
  40. /// </summary>
  41. protected override void Dispose(bool disposing)
  42. {
  43. if (disposing && components != null)
  44. {
  45. components.Dispose();
  46. }
  47. base.Dispose(disposing);
  48. }
  49.  
  50. [WebMethod]
  51. public string HelloWorld()
  52. {
  53. return "Hello World";
  54. }
  55.  
  56. [WebMethod(Description="返回整型数据")]
  57. public int GetInt()
  58. {
  59. return ;
  60. }
  61.  
  62. [WebMethod(Description="返回布尔数据")]
  63. public bool GetBool()
  64. {
  65. return true;
  66. }
  67.  
  68. [WebMethod(Description="返回实体类")]
  69. public Student GetStudent()
  70. {
  71. Student stu = new Student();
  72. stu.Name = "张三";
  73. stu.Age = ;
  74. stu.Sex = true;
  75. return stu;
  76. }
  77.  
  78. [WebMethod(Description="返回DataSet")]
  79. public DataSet GetDataSet()
  80. {
  81. DataSet ds = new DataSet();
  82. return ds;
  83. }
  84.  
  85. }
  86. }

上述中含有的Student类

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5.  
  6. namespace WebServiceByEmptyWeb
  7. {
  8. /*
  9. * 为避免Framework1.1中返回实体类报错“请求格式无法识别。”
  10. * 要在Web.Config文件中<system.web>添加以下内容:
  11. * <webServices>
  12. <protocols>
  13. <add name="HttpPost" />
  14. <add name="HttpGet" />
  15. </protocols>
  16. </webServices>
  17. */
  18.  
  19. /// <summary>
  20. /// 学生基本信息类
  21. /// 可序列化(webservice才能调用)
  22. /// </summary>
  23. [Serializable]
  24. public class Student
  25. {
  26. public Student()
  27. {
  28. }
  29.  
  30. private string name;
  31. /// <summary>
  32. /// 姓名
  33. /// </summary>
  34. public string Name
  35. {
  36. get { return name; }
  37. set { name = value; }
  38. }
  39.  
  40. private bool sex;
  41. /// <summary>
  42. /// 性别(布尔变量真为女,假为男)
  43. /// </summary>
  44. public bool Sex
  45. {
  46. get { return sex; }
  47. set { sex = value; }
  48. }
  49.  
  50. private int age;
  51. /// <summary>
  52. /// 年龄
  53. /// </summary>
  54. public int Age
  55. {
  56. get { return age; }
  57. set { age = value; }
  58. }
  59.  
  60. }
  61. }

5.WinForm测试4中建立的Webservice

在WinForm项目中【添加服务引用】- 【高级】 -【添加web引用】 界面与添加Web程序一致

winForm程序:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9.  
  10. namespace OtherTypeWebServiecTest
  11. {
  12. public partial class Form1 : Form
  13. {
  14. public Form1()
  15. {
  16. InitializeComponent();
  17. }
  18.  
  19. //类
  20. private void button1_Click(object sender, EventArgs e)
  21. {
  22. localhost.OtherTypeWebServices webservice = new localhost.OtherTypeWebServices();
  23. localhost.Student stu = webservice.GetStudent();
  24. txbName.Text = stu.Name;
  25. txbSex.Text = stu.Sex==false?"男":"女";
  26. txbAge.Text = stu.Age.ToString();
  27.  
  28. }
  29.  
  30. //DataTable
  31. private void button2_Click(object sender, EventArgs e)
  32. {
  33. localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
  34. txbOther.Text = webService.GetDataSet().Tables.Count.ToString();
  35. }
  36.  
  37. //Int
  38. private void button3_Click(object sender, EventArgs e)
  39. {
  40. localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
  41. txbOther.Text = webService.GetInt().ToString();
  42. }
  43.  
  44. //Bool
  45. private void button4_Click(object sender, EventArgs e)
  46. {
  47. localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
  48. txbOther.Text = webService.GetBool().ToString();
  49. }
  50.  
  51. //Hello World
  52. private void button5_Click(object sender, EventArgs e)
  53. {
  54. localhost.OtherTypeWebServices webService = new localhost.OtherTypeWebServices();
  55. txbOther.Text = webService.HelloWorld();
  56. }
  57. }
  58. }

测试结果显示:

WebService简单使用的更多相关文章

  1. 主题:Java WebService 简单实例

    链接地址:主题:Java WebService 简单实例    http://www.iteye.com/topic/1135747 前言:朋友们开始以下教程前,请先看第五大点的注意事项,以避免不必要 ...

  2. WebService 简单安全验证

    原文:WebService 简单安全验证 最近新接了一个需要调用第三方WebService的项目,看到这个第三方WebService被调用的时候,需要授权用户名和密码,于是自己也想对WebServic ...

  3. 使用 CXF 做 webservice 简单例子(转载)

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  4. Java使用MyEclipse构建webService简单案例

     什么是WebServices? 它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含.自描述.模块化的应用,可以发布.定位.通过web ...

  5. .net实现webservice简单实例分享

    原理:WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互.作用:主要用 ...

  6. 使用 CXF 做 webservice 简单例子

    Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这样的服务部署在 Tomcat 和基于 Spring 的轻量 ...

  7. .net请求Webservice简单实现天气预报功能

    很久没有接触Webservice的知识,今天稍微复习了一下关于webservice,简单做了一个天气预报的功能,虽然界面丑的厉害,但功能算是实现了,以下是效果展示. 这东西没什么难点,只是天气预报的功 ...

  8. Android调用天气预报的WebService简单例子

    下面例子改自网上例子:http://express.ruanko.com/ruanko-express_34/technologyexchange5.html 不过网上这个例子有些没有说明,有些情况不 ...

  9. webservice简单总结

    一:webservice定义 webservice是一种基于xml,xsd封装格式,通过http协议通信的一种服务,支持跨平台.跨语言的 远程调用. 二:webservice优点 1:跨平台,无论是w ...

  10. Webservice简单概念

    一.序言 大家或多或少都听过 WebService(Web服务),有一段时间很多计算机期刊.书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成 分.但是不得不承认的是W ...

随机推荐

  1. mysql oracle 删除外键约束

    mysql alter table xxx drop foreign key xxx cascade; oracle alter table drop constraint xxxxx cascade ...

  2. 一个用UpdateLayeredWindow实现窗体半透明的delphi的代码

    http://www.pudn.com/downloads171/sourcecode/windows/detail791686.html unit Unit1; interface  uses   ...

  3. 整整68页学习C++的文章

    有空看看,有不少好东西: http://dev.21tx.com/language/c/index.shtml

  4. java 修饰符的作用一(public protected default private 组)

    1.public protected default private 组 public 权限最大,同类,同包,不同包,同包子类父类之间,不同包子类父类之间都可以访问. java 默认的权限是defau ...

  5. Spring的OpenEntityManagerInViewFilter

    在Java Web项目中使用Hibernate经常会遇到LazyInitializationException .这是因为controller和model层(java代码)将通过JPA的一些启用了延迟 ...

  6. Android:创建可穿戴应用 - 自定义布局

    创建自定义布局(Creating Custom Layouts) 本文将介绍如何创建自定义通知以及使用可穿戴UI库来创建自定义布局你同时还需要了解可穿戴设计准则(Wear Design Princip ...

  7. android如何获取默认的桌面程序

    [方法1] http://stackoverflow.com/questions/12594192/remove-activity-as-default-launcher/12594332#12594 ...

  8. CBO学习笔记(转)

    Query Transformation 在继续研究SQL的其他操作(比如Join)对CBO的影响之前,我们来讨论一下Oracle优化器的Query Transformation特性.我们都习惯于根据 ...

  9. java学习之面向对象概念

    思考的两种方式: 举例: 把大象放到冰箱里 一.面向过程 :[打开冰箱->把大象放里面->关上冰箱门]面向过程注重的是过程,也就是(动作[函数]),然后按照动作依次去执行就好了. 代表语言 ...

  10. node.js基础模块http、网页分析工具cherrio实现爬虫

    node.js基础模块http.网页分析工具cherrio实现爬虫 一.前言      说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherri ...