zoukankan      html  css  js  c++  java
  • C# 下 WebService 初探: 构建Web Service 服务及 WinForm和浏览器 httpget调用

    在 Visual Studio 下构建 Web Service 服务非常简单,  只需: 添加新的项目--> ASP.NET Web 服务应用程序,即可生成一个 WebService, 并有一个默认的 不带参数的 Helloworld web方法, 也可自己添加一个带参数的方法, 如下:

            [WebMethod]
            public string SayHello(string name)
            {
                return String.Format("Hi, {0}!", name);
            }

    生成的是一个 .dll 文件; 也可以将 Service.asmx 发布到 IIS中去.

    (一) WinForm 中调用 WebService.

    1.  添加一个新的项目: Windows窗体应用程序;

    2.  应用 --> 添加应用, 找到上面生成的 WebService 应用程序文件(.dll), 添加当前应用程序的应用中.

    3.  添加引用 WebSerice 的命名空间, 比如 : using MyWebService;

    4.  测试调用web service 的效果: 在窗体上设置 2个 Button, 设置Click事件:

            private void button1_Click(object sender, EventArgs e)
            {
                MyWebService.Service1 localService = new Service1();
                MessageBox.Show(localService.HelloWorld());
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                MyWebService.Service1 localService = new Service1();
                string response = localService.SayHello("Tom");
                MessageBox.Show(response);
            }
    

    即可.

    (二) 浏览器下使用 Http-Get 直接调用 WebService, 即在浏览器下地址栏这样调用:

    http://DomainName/Service1.asmx/SayHello?name="Jick"

    默认情况下, 处于安全考虑, .net 2.0 以上不支持这种协议调用. 若要这样做, 则需要修改 web.config 配置文件, 如下增加设置项:

          <webServices>
            <protocols>
              <add name="HttpGet"/>
              <add name ="HttpPost"/>
            </protocols>
          </webServices>

    这个必须放在<system.web>  ...  </system.web> 区段里的.

    当 web服务发布时 web.config 是一起发布出去的.

    打开浏览器, 在地址栏输入:  http://127.0.0.1/Service1.asmx/SayHello?Name="dfasfas"

    其中方法名 SayHello 大小写是敏感的, 参数名不区分大小写, 但名称必须与原方法定义中是一样的.

    即可获得如下 xml 信息:

      <?xml version="1.0" encoding="utf-8" ?>
      <string xmlns="http://tempuri.org/">Hi, "dfasfas"!</string>
     
      当然这种显示结果 UI 体验是不友好的, 是给开发者用于获取 xml 数据的.
      这就是对 Web Service 的一个初步了解吧.
  • 相关阅读:
    tomcat端口号被占用问题
    Idea debug时报错:Command line is too long
    IDEA报错: Clone failed: Authentication failed for 'http://10.70.XXXXXXXXXXXXXXXXX'
    LiquiBase实战总结
    Iedis
    IntelliJ IDEA热部署插件JRebel免费激活图文教程(持续更新)转载
    MySql 8.0.11 客户端连接失败:2059
    windows系统 MySQL8.0.12详细安装步骤及基本使用教程
    IDEA的常见的设置和优化(功能)
    SpringBoot热启动让开发更便捷
  • 原文地址:https://www.cnblogs.com/csMapx/p/2143282.html
Copyright © 2011-2022 走看看