zoukankan      html  css  js  c++  java
  • c#程序添加其他网站的webservice引用。

    前言

    有A网站,B网站两个网站独立运行。某一天,需要两个网站进行合作来完成一件事,比如用A网站接收一些数据进行处理,存入中转数据库,B网站定时去取数据进入自己的系统进行处理。

    可能我们会先想到在B网站做一个功能,定时去数据库取。但是如果我没有B网站的源代码只有开发文档呢。这时候可以用一个简单的winform程序来做。然而从中转数据库取数据容易,存到B网站自己的数据库难。为什么呢,因为数据要经过B网站的一些方法处理。这个时候,就用到了在winform程序中引用webservice的情景。

    首先,vs2013创建一个winform程序。添加最基本的控件。一个button用来触发事件,一个label用来显示事件结果。

    在解决方案资源管理器上点击右键,选择添加服务引用。

    弹出框中,填写你要引入的服务。这里拿网上的一个天气预报的服务作实验。地址:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx,点击转到

    如果服务地址正确,能找到服务,会弹出下面的框

    命名空间可以随意命名,点击确定,可以看到我们的资源面板变成了这样子。

    这个服务有什么方法呢。如果是你自己的服务,那么你肯定知道,如果是公共服务,可以在浏览器输入服务地址,看一下有哪些方法:

    嗯。好了,就用它了。进入程序测试。

            private void button1_Click(object sender, EventArgs e)
            {
                WeatherServiceTest.WeatherWebServiceSoapClient client=new WeatherServiceTest.WeatherWebServiceSoapClient();
                string[] province = client.getSupportProvince();
                for (int i = 0; i < province.Length;i++ )
                {
                    this.label1.Text += "
    " + province[i];
                }
            }
    

      

    执行!点击button,结果报错如下:

    可以清楚地看到,多个终点配置。打开app.config

    可以清楚地看到,确实有两个终点配置。我们需要删除一个。那么这里删除哪一个呢。我们看到,这里程序默认给生成了两个binding,两个对应的endpoint。一个是basic基本的,一个是custom自定义的。然后我们可以看到,两个终点配置其实就是soap的协议不一样而已。其实删除哪一个都可以,这里我们保留basic,删除custom。(custom的binding可删可不删。为了保持整洁,没有多余的干扰项,我们也删除了)。删除后如下:

    再次运行。

    成功!!!

    提醒:在一个应用中可以添加多个服务引用,但是每次添加的时候会相应添加两个binding和对应的endpoint,去掉其中一个即可。其他的和上述一样。

  • 相关阅读:
    创建FLASK,同步docker
    FLASK Buleprint
    restful api
    Angular JS
    线程日志
    将项目部署到linux下的docker容器中
    安装和卸载docker
    学习目录总编
    Ansible
    装饰器
  • 原文地址:https://www.cnblogs.com/coder-axin/p/5320117.html
Copyright © 2011-2022 走看看