客户端测试页:

WebService代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Data;
using System.Net;
using System.Web.Services.Protocols; namespace WebSit1
{
/// <summary>
/// Service 的摘要说明
/// </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 Service : System.Web.Services.WebService
{ //[WebMethod]
//public string HelloWorld()
//{
// return "Hello World";
//} [WebMethod(Description="求和的方法",EnableSession=true)]
public double addition(double i,double j)
{
return i + j;
}
[WebMethod(Description="求差的方法")]
public double substruct(double i,double j)
{
return i - j;
}
[WebMethod(Description = "求积的方法")]
public double multiplication(double i, double j)
{
return i * j;
}
[WebMethod(Description = "求商的方法")]
public double division(double i, double j)
{
if (j!=)
{
return i / j;
}
else
{
return ;
} } [WebMethod(Description = "得到一个表格的方法")]
public DataTable getTable(int j)
{
DataTable dt = new DataTable("Test");
dt.Columns.Add(new DataColumn("col1", typeof(System.String)));
dt.Columns.Add(new DataColumn("col2", typeof(System.String))); for (int i = ; i < j; i++)
{
DataRow dr = dt.NewRow();
dr[] = i.ToString();
dr[] = i.ToString();
dt.Rows.Add(dr);
}
return dt; }
[WebMethod(EnableSession=true)]
public string TestSession()
{
string s = "TestSession";
object o = Session[s];
int i = o != null ? (int)o : ;
i++;
Session[s]=i;
return Session.SessionID + ":" + i;
} public myHeader header;
[WebMethod(Description="测试soap")]
[SoapHeader("header",Direction=SoapHeaderDirection.In )]
public string TestSoapHeadIn()
{
return header.name+":"+header.psw;
}
} public class myHeader:SoapHeader
{
public string name;
public string psw;
}
}

客户端代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Net;
using localhost; public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Button btn = new Button();
btn.Width = ;
btn.Text = "=";
btn.Click += btn_Click;
E.Controls.Add(btn);
getTable.ServerClick += getTable_ServerClick;
testSession.ServerClick += testSession_ServerClick;
testSoap.ServerClick += testSoap_ServerClick;
} void testSoap_ServerClick(object sender, EventArgs e)
{
localhost.Service ws = new localhost.Service();
myHeader head = new myHeader();
head.name = "n1";
head.psw = "p1";
ws.myHeaderValue = head;
TextHeader.Text=ws.TestSoapHeadIn();
} void testSession_ServerClick(object sender, EventArgs e)
{
localhost.Service ws = new localhost.Service();
CookieContainer cookies = new CookieContainer();
ws.CookieContainer = cookies;
for (int i = ; i < ; i++)
{
sessionI.Text+= ws.TestSession();
sessionI.Text += "\r\n";
}
} void getTable_ServerClick(object sender, EventArgs e)
{
TestWS.ServiceSoapClient ws = new TestWS.ServiceSoapClient();
DataTable dt = ws.getTable();
gv.DataSource = dt;
gv.DataBind();
} void btn_Click(object sender, EventArgs e)
{
if (Num1.Text!="" && Num2.Text!="")
{
TestWS.ServiceSoapClient WS = new TestWS.ServiceSoapClient();
int Oper = selectOper.SelectedIndex;
switch (Oper)
{
case :
Result.Text = WS.addition(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case :
Result.Text = WS.substruct(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case :
Result.Text = WS.multiplication(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
case :
Result.Text = WS.division(double.Parse(Num1.Text), double.Parse(Num2.Text)).ToString();
break;
} } } }

学习webservice的更多相关文章

  1. 学习 WebService 第三步:一个简单的实例(RAD+WAS 8.5开发SOAP项目)

    [开发环境] Web Service 服务器端开发工具:RAD(Eclipse内核) Web Service 服务器:IBM WebSphere v8.5 REST/SOAP:SOAP(JAX-WS/ ...

  2. 学习Webservice之入天气小试

    主要方法是:通过程序中设置代理用公司内网访问外部Webservice public InputStream getSoapInputStream(String url) { InputStream i ...

  3. 学习 WebService 第五步:在Local创建测试用WebService(WSDL)

    [准备] Eclipse+Tomcat7(Tomcat端口修改为不冲突的值) axis2 1.7.7 jar包(没有来这里下载:http://www.apache.org/dyn/closer.lua ...

  4. 学习 WebService 第四步:利用WSDL(URL)生成WebService客户端<初级>

    我用的是最简单的方法,利用jdk的命令wsimport -keep -p 包路径 -d 代码存放位置 WSDL网址 蓝色是命令,粉色是存放位置,橘色是URL C:\Program Files\IBM\ ...

  5. 学习 WebService 第三步:一个简单的实例(SoapUI测试REST项目)

    原文地址:SOAPUI测试REST项目(六)——REST服务和WADL ↑↑↑ 原文用的SoapUI,2018-3-19时,这个软件已经更名为ReadyAPI(集成了SoapUI),因此下文中我重新截 ...

  6. 学习 WebService 第二步:知识准备——SOAP vs REST(wsdl和wadl区别)(转)

    原文地址:蓝精灵——默默争上游 笔记: SOAP和REST是两种实现WebService的主要方案(Web API部署REST貌似占了大半壁江山) REST Web Services 基于 HTTP ...

  7. 学习 WebService 第二步:知识准备——WSDL文件解析

    原文地址:https://www.cnblogs.com/yzw23333/p/7245104.html Web service中一个 WSDL 对应一个 web service地址. 可以想象成一个 ...

  8. 学习 WebService 第一步:体系结构、三元素SOAP/WSDL/UDDI

    原文地址:爱军的博客——WebService简介 一.为什么需要Web Service 笔记: WebService 可以实现 跨(硬件.服务器.开发工具.平台.应用程序.程序语言……)共享数据和应用 ...

  9. 学习Webservice测试

    2014-04-01 可用Myeclipse10自带工具生成客户端, 也可用CXF生成,注意,不要用CXF3.0.0milestone,该版本不能生成,请用CXF2.2.8 2015-01-12 下载 ...

随机推荐

  1. strak组件(5):为列表定制预留钩子方法

    效果图:  新增函数 def get_list_display(self): 获取页面上应该显示的列,预留的自定义扩展,例如:以后根据用户的不同显示不同的 一.stark组件 stark/servic ...

  2. [CodeForces - 296D]Greg and Graph(floyd)

    Description 题意:给定一个有向图,一共有N个点,给邻接矩阵.依次去掉N个节点,每一次去掉一个节点的同时,将其直接与当前节点相连的边和当前节点连出的边都需要去除,输出N个数,表示去掉当前节点 ...

  3. 使用.gitignore忽视项目中的文件/文件夹

    在项目开发的过程中,我们经常需要IDE来提高编程效率.然而,不同的IDE会生成各种各样的临时文件.在项目生命周期中,我们往往不需要关注这类文件的变更记录,因而我们是不需要将它们加入到源代码管理器中. ...

  4. 关于Android SDK无法更新的解决办法

    最新摆弄PhoneGap打包,所以需要安卓的环境,配置后,sdk更新实在是在慢了,上网找了一下,可能被强了,所有总结如下办法,最后弄好了,跟大家分享一下 具体步骤:1:打开SDK Manager.ex ...

  5. 2.栅格的类中同时设置col-md-* col-sm-*的作用

    1.一般设定成这样的话,在小屏幕上会堆叠在一起 <div class="row"> <div class="col-md-4 ">COL ...

  6. jmeter察看结果树响应数据中文乱码解决办法

    1.到jmeter目录文件中bin文件夹下找到jmeter.properties文件,该文件为jmeter配置文件.使用编辑工具打开它. 2.找到    #sampleresult.default.e ...

  7. Windows下python 3 pip程序升级异常问题及pip常用命令

    最近在学习,Selenium+Python自动化,在安装selenium包的时候,出现无法安装的情况,并提示Pip有新的版本,我的版本太低了.然后安装系统提示操作,pip升级也出现异常,报错timeo ...

  8. 课时46:魔法方法:描述符(property的原理)

    目录: 一.描述符(property的原理) 二.课时46课后习题及答案 ********************************** 一.描述符(property的原理) ********* ...

  9. python作业:HAproxy配置文件操作(第三周)

    一.作业需求: 1. 根据用户输入输出对应的backend下的server信息 2. 可添加backend 和sever信息 3. 可修改backend 和sever信息 4. 可删除backend ...

  10. ExtJs学习之MessAgeBox的使用

    1.Ext.MessageBox.alert() 调用格式: alert( String title, String msg, [Function fn], [Object scope] ) 参数说明 ...