博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web服务初探:用Demo学Web服务系列(3)——用C/S程序调用Web服务
阅读量:5734 次
发布时间:2019-06-18

本文共 2590 字,大约阅读时间需要 8 分钟。

  从Visual Studio.Net2003开始,微软的.Net开发平台就吸引了很多的编程的专业人员和爱好者。当微软的Visual Studio.Net2005一面世,世界为之再次一惊,真的可以说是“取其精华,去其糟粕”了。当然新的成长也会带来新的问题,但是总体来说是在前进着的。好了,废话也不多说了,来用这个非常方便的.Net平台来开发这个Demo吧!

        我们在《
》已经开发出了一个简单的WebService,名为MyServiceClass。在这个随笔中,我们就来讲解如何调用这个外部的WebService(有的地方也把外部的WebService叫做远端WebService)。

        下面是我的开发环境配置:

操作系统:WindowsXP(已安装了IIS)

开发工具:Microsoft Visual Studio.Net2005

开发所用语言:Visual C#


        这里我们假设您已经刚刚建立好了一个Windows应用程序工程,其名称为“WindowsPro”,并将工程中默认的窗体名称“Form1”改为“Login.cs”,那么Login窗体的其他属性如下(需要更改的属性):

BackColor = 0, 192, 192;(Name) = Login;FormBorderStyle = FixedSingle;MaximizeBox = False;MinimizeBox = False;StartPosition = CenterScreen,然后在窗体上放置三个Label、两个TextBox和两个Button,分别设置其属性后,如下图:

下面就是一个关键部分了,右击工程名称选择“添加Web引用”,在弹出的窗口中选择“本地计算机的Web服务”后,会列出所有在您计算机上能找的WebService,选择并点击上一篇随笔中定义的MyServiceClass,在新出的窗口中将Web引用名更改为“MyServ”,点击“添加引用”。这样在工程的Web References文件夹中会添加一个MyServiceClass的代理,名为“MyServ”。
        添加完WebService的代理后,我们就可以在程序中使用了,下面看看上面窗体的代码如下:
 1
using
 System;
 2
using
 System.Collections.Generic;
 3
using
 System.ComponentModel;
 4
using
 System.Data;
 5
using
 System.Drawing;
 6
using
 System.Text;
 7
using
 System.Windows.Forms;
 8
 9
namespace
 WindowsPro
10
{
11    public partial class Login : Form
12    {
13        public Login()
14        {
15            InitializeComponent();
16        }
17
18        private void Btn_Login_Click(object sender, EventArgs e)
19        {
20            MyServ.MyServiceClass MyWebServ = new MyServ.MyServiceClass();
21            bool LoginOK = MyWebServ.Login(this.tB_UserName.Text, this.tB_PassWord.Text);
22            if (LoginOK)
23            {
24                MessageBox.Show("用户名和密码正确!");
25            }
26            else
27            {
28                MessageBox.Show("用户名和密码错误!");
29            }
30        }
31
32        private void Btn_Close_Click(object sender, EventArgs e)
33        {
34            this.Close();
35        }
36    }
37}
其中的第18行“MyServ.MyServiceClass MyWebServ = new MyServ.MyServiceClass();”是实列化MyServiceClass代理类,以便在下面的代码中调用MyServiceClass中的方法,在第21行“bool LoginOK = MyWebServ.Login(this.tB_UserName.Text, this.tB_PassWord.Text);”中调用了MyServiceClass中的Login方法,MyWebServ生成Soap消息后发送到服务器端验证所输入的用户名和密码是否正确,并返回结果。大家可以运行一下这个程序,输入正确的用户名“Micky”和密码“micky0”测试一下,再输入一个其他的用户名和密码测试一下。
         这里简要解释一下调用机制:Login方法中的两个参数(从this.tB_UserName.Text和this.tB_PassWord.Text中获得)通过MyServiceClass的代理类MyServ生成一个Soap消息,将这个Soap消息通过Http协议发送给服务器端的MyServiceClass,而服务器端的MyServiceClass解析Soap消息后调用相应的方法执行,并将方法返回的值再由MyServiceClass生成一个Soap消息通过Http协议发送给调用的客户端,当调用的客户端MyServiceClass的代理类MyServ接受到这个消息,解析出里面返回的值,赋值给变量bool LoginOK。
        由上面说的可以看出我们必须知道每个调用的方法所要传入的参数类型和方法所要返回值的类型。
        今天我们通过一个Windows应用程序的用户登录窗口实现了一个简单的C/S程序调用WebService。下一篇随笔我们还是要用到MyServiceClass这个服务,并将修改其中的Login方法,再来讲解使用此应用程序如何再次调用修改后的MyServiceClass服务。
本文转自刚刚博客园博客,原文链接:http://www.cnblogs.com/lijigang/archive/2006/10/31/545049.html,如需转载请自行联系原作者
你可能感兴趣的文章
Linux下磁盘保留空间的调整,解决df看到的空间和实际磁盘大小不一致的问题
查看>>
RSA 生成公钥、私钥对
查看>>
C# ASP.NET 权限设计 完全支持多数据库多语言包的通用权限管理系统组件源码
查看>>
测试工具综合
查看>>
asp.net中调用COM组件发布IIS时常见错误 80070005解决方案
查看>>
分享一段ios数据库代码,包括对表的创建、升级、增删查改
查看>>
如何书写高质量的jQuery代码
查看>>
Activity的生命周期整理
查看>>
【记录】JS toUpperCase toLowerCase 大写字母/小写字母转换
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
Visifire charts ToolBar
查看>>
Mysql查询
查看>>
数据传输流程和socket简单操作
查看>>
利用广播实现ip拨号——示例
查看>>
ProbS CF matlab源代码(二分系统)(原创作品,转载注明出处,谢谢!)
查看>>
OC中KVC的注意点
查看>>
JQ入门(至回调函数)
查看>>
1112: 零起点学算法19——输出特殊值
查看>>
【洛天依】几首歌的翻唱(无伴奏)
查看>>
strcspn
查看>>