Winform 调用WebService程序 图文

本文介绍如何架构C#WebService程序

如您对WebService不了解,请先阅读 什么是WebService?

演示程序的WebService框架图
贴图图片
图1

下面来介绍如果建立WebService项目

1.打开Visual Studio 2005,在主菜单内点文件->新建->WebSite->打开New WebSite对话框

贴图图片
图2

2.在New Web Site对话框内选择Asp.Net Web Service模板,设置工程保存目录,选择语言,点确定。
贴图图片
图3

3.在Visual Studio内可以看到刚才创建的WebService工程。如下图
贴图图片
图4

4. 编写WebService服务器端代码,演示程序建立了一个DataAccessLayer类库项目, 并建立了一个UserData类

public class UserData
{
    //
    //数据访问层 (DataAccessLayer)
    //获取用户列表,这里方便演示直接创建一个DataTable.(您可以从SqlServer获取数据)
    //
    public byte[] GetUserList()
   {
      DataSet ds = new DataSet();
      DataTable dt = new DataTable();
      dt.Columns.Add("UserName", typeof( string));
      
       //增加一条记录
      DataRow row = dt.NewRow();
      row[0] = "易学网";
      dt.Rows.Add(row);
      
      row = dt.NewRow();
      row[0] = "易学原创";
      dt.Rows.Add(row);
      
      ds.Tables.Add(dt);
      
       //将DataSet转换为byte数组,用于Http传输。
       return ZipObject.CompressionDataSet(ds);
   }
}


在HelloWorld方法下编写一个自己的方法.HelloWorld方法是可以删除的。

//建立一个自己的Web方法
[WebMethod]
public byte[] GetUserList()
{
    return new UserData().GetUserList();
}


5.如编译通过,按F5运行WebService程序,如下是运行效果图,下面有5个可用链接,点Service.asmx链接。
贴图图片
图5

6.点Service.asmx链接出现WebService方法定义列表页面。(点HelloWorld方法试试?)
贴图图片
图6


7. 建立一个WinForm客户端工程.
步骤:运行一个新的Visual Studio 2005实例,在主菜单上点文件->新增->项目.在新建项目对话框内项目类型选择Visual C#,模板选择Windows Application. 设置项目保存目录及项目名称,点确定。选择References树结点,点右键打开弹出菜单,如下图:
贴图图片
图7

8. 点弹出菜单的添加Web引用,打开[添加Web引用]对话框. 复制第6步的页面地址到Url内,点前往按钮。
此时vs查找输入的asmx地址是否存在,如存在打开asmx页面.该页面就是服务器端发布的asmx文件。
在Web引用名输入一个易记的名字,如UserWebService,如下图:

贴图图片
图8

9.点添加引用按钮,在客户端项目工程内自动生成Web References结点及Service类,在对象浏览器内可看到.
表示引用WebService成功, 接下来我们可以使用WebSerice了。

贴图图片
图9

10.创建一个WinForm窗体,在[调用WebService方法]按钮的Click事件内输入:
private void button1_Click( object sender, EventArgs e)
{
    //调用UserWebService命名空间的Service类的GetUserList方法获取用户列表
    //该类在添加Web引用后自动生成的。
    byte[] bytes = new UserWebService.Service().GetUserList();
   
    //将byte数组转换为DataSet
   DataSet ds = (DataSet)ZipObject.DecompressionDataSet(bytes);
   dataGridView1.DataSource = ds.Tables[0];
}


11.按F5运行Winform程序,效果图如下:

贴图图片

原文地址:http://www.csframework.com/archive/5/arc-5-20110714-1723.htm 感谢

其他资料: http://blog.csdn.net/aspnet2002web/article/details/6074463  WinForm如何调用Web Service

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整的服务端及客户端调用程序,在win7+ vs2015环境运行通过. 一、说明 1、创建winfrom应用程序;(或者是控制台项目) 2、在项目中添加一个WCF服务,并实现服务; 3、在需要启动WebService服务的地方启动该服务即可; 二、代码如下: 1、新建一个WCF服务——定义服务接口    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]     public interface ICalculator     {         [OperationContract]         double Add(double n1, double n2);     } 2、新建一个WCF服务——实现服务 public class CalculatorService : ICalculator     {         public double Add(double n1, double n2)         {             return n1 + n2;         }     } 3、添加完WcF服务后会在应用程序配置文件中有入下节点                             <!--TestServer.ICalculator服务定义的接口,根据自己定义进行修改-->                                                                   <baseAddresses> <!--这个是要发布的服务地址,可以进行修改-->                                   </baseAddresses>                   4、在要启动服务的地方启动服务监听   public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { //打开服务创建监听,并开始监听消息 ServiceHost serviceHost = new ServiceHost(typeof(Service1));//需要using System.ServiceModel; serviceHost.Open(); label1.Text = "服务启动正常"; } catch (Exception ex) { label1.Text = ex.Message; } } 5、下面可以在客户端通过上面的服务地址”http://xxx.xxx.xxx.xx:8733/test/Service1/“对服务进行调用 到这步就实现在控制台中实现webService的发布。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值