[导入]在vs2005中调用远程WebService(幻想曲)

webservice提供一个接口,供我们调用,只需调用其相应的方法,就会有数据返回,数据是以xml格式返回的.
 有朋友问到:在我的blog中曾提到一些实用的Web Service,但不知道如何在vs中调用它,这里写了一个简单的教程.希望
 能有所帮助.
 几个实用的Web Service地址
  http://www.lemongtree.com/zh-cn/item,307.html
 这里我以
 天气预报
 地址:http://www.wopos.com/webservice/weather.asmx
 为例来说明.

 首先,我们在vs2005新建一个工程,这个工程可以是一个web工程,也可以是一个win程序.
 当然,你也可以在vs2003中做下面的操作.我这里是建立的一个web工程

 选取asp.net网站,然后确定
 这时,vs2005会自动为我们新建一个default.aspx并已经打开了该文件
 我们就在这个文件中来操作它
 下一步,我们选中网站,单击右键,选择 添加web引用,这样就可以引用外部的web service了,这是最关键的一步.

 在下面的对话框中输入远程的web service地址,如:http://www.wopos.com/webservice/weather.asmx
 再点击"前往",vs会自动搜索该web service上的所有方法


web引用名相当于Namespace,你可以作更改,也可以用默认的,一般默认的引用名是域名的反写,vs还会告诉我们在这里找到了多少个方法
等有用的信息

然后单击"添加引用",这时我们的工程下就会多出一个名为"App_WebReferences"的目录(vs2003下可能会有所不同),

这时,表明我们已经引用了外部的web service,我们在代码区可以像使用一般的类那样来调用它.现在转到代码区
当我敲入com时,vs已经提示我了

创建一个Weather类的实例,然后调用getWeather(string city)方法就行了

最终的代码
程序代码

 protected void Page_Load(object sender, EventArgs e)
    {
        com.wopos.www.Weather service = new com.wopos.www.Weather();
        Response.Write(service.getWeather("武汉"));
    }

现在编译预览

OK!已经取到数据了,但格式并不是我们需要的,所以需要进一步处理,如何处理,请大家参考"几个实用的Web Service"中的相关说明,这里就不多说了.

由此可见,调用一个web service是非常简单的,但是,如果远程的web service的地址做了更改,或是改变了方法名,那我们的web service就要重新引用了并编译了,
所以最好是把方法名和service URL写在配置文件中,这样就方便多了. webservice提供一个接口,供我们调用,只需调用其相应的方法,就会有数据返回,数据是以xml格式返回的. <BR>&nbsp;有朋友问到:在我的blog中曾提到一些实用的Web&nbsp;Service,但不知道如何在vs中调用它,这里写了一个简单的教程.希望 <BR>&nbsp;能有所帮助. <BR>&nbsp;几个实用的Web&nbsp;Service地址 <BR>&nbsp;<A href="http://www.lemongtree.com/zh-cn/item,307.html" target=_blank>http://www.lemongtree.com/zh-cn/item,307.html</A> <BR>&nbsp;这里我以 <BR>&nbsp;天气预报 <BR>&nbsp;地址:http://www.wopos.com/webservice/weather.asmx <BR>&nbsp;为例来说明. <BR><BR>&nbsp;首先,我们在vs2005新建一个工程,这个工程可以是一个web工程,也可以是一个win程序. <BR>&nbsp;当然,你也可以在vs2003中做下面的操作.我这里是建立的一个web工程 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092624_SpxImage7.png"> <BR>&nbsp;选取asp.net网站,然后确定 <BR>&nbsp;这时,vs2005会自动为我们新建一个default.aspx并已经打开了该文件 <BR>&nbsp;我们就在这个文件中来操作它 <BR>&nbsp;下一步,我们选中网站,单击右键,选择<SPAN style="FONT-WEIGHT: bold">添加web引用</SPAN>,这样就可以引用外部的web&nbsp;service了,这是最关键的一步. <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092629_SpxImage8.png"> <BR>&nbsp;在下面的对话框中输入远程的web&nbsp;service地址,如:http://www.wopos.com/webservice/weather.asmx <BR>&nbsp;再点击"前往",vs会自动搜索该web&nbsp;service上的所有方法 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092635_SpxImage9.png"> <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092641_SpxImage10.png"> <BR>web引用名相当于Namespace,你可以作更改,也可以用默认的,一般默认的引用名是域名的反写,vs还会告诉我们在这里找到了多少个方法 <BR>等有用的信息 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092646_SpxImage11.png"> <BR>然后单击"添加引用",这时我们的工程下就会多出一个名为"App_WebReferences"的目录(vs2003下可能会有所不同), <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092652_SpxImage12.png"> <BR>这时,表明我们已经引用了外部的web&nbsp;service,我们在代码区可以像使用一般的类那样来调用它.现在转到代码区 <BR>当我敲入com时,vs已经提示我了 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092657_SpxImage13.png"> <BR>创建一个Weather类的实例,然后调用getWeather(string&nbsp;city)方法就行了 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092703_SpxImage14.png"> <BR>最终的代码 <BR> <DIV style="BORDER-RIGHT: #8394b2 1px dotted; BORDER-TOP: #8394b2 1px dotted; BACKGROUND: #fafcfe; BORDER-LEFT: #8394b2 4px solid; BORDER-BOTTOM: #8394b2 1px dotted"> <DIV style="PADDING-RIGHT: 3px; PADDING-LEFT: 3px; FONT-WEIGHT: bold; BACKGROUND: #e4eaf2; PADDING-BOTTOM: 3px; PADDING-TOP: 3px"><IMG alt=code src="http://www.lemongtree.com/zh-cn/images/news_bullet.gif"> 程序代码</DIV> <DIV style="PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px; FONT-FAMILY: 'Courier New'"><BR>&nbsp;protected&nbsp;void&nbsp;Page_Load(object&nbsp;sender,&nbsp;EventArgs&nbsp;e) <BR>&nbsp;&nbsp;&nbsp;&nbsp;{ <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.wopos.www.Weather&nbsp;service&nbsp;=&nbsp;new&nbsp;com.wopos.www.Weather(); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(service.getWeather("武汉")); <BR>&nbsp;&nbsp;&nbsp;&nbsp;} <BR></DIV></DIV><BR>现在编译预览 <BR><IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" alt=www.lemongtree.com onerror="this.src='images/error.jpg;'" src="http://www.lemongtree.com/zh-cn/uploads/060602-092708_SpxImage15.png"> <BR>OK!已经取到数据了,但格式并不是我们需要的,所以需要进一步处理,如何处理,请大家参考"几个实用的Web&nbsp;Service"中的相关说明,这里就不多说了. <BR><BR>由此可见,调用一个web&nbsp;service是非常简单的,但是,如果远程的web&nbsp;service的地址做了更改,或是改变了方法名,那我们的web&nbsp;service就要重新引用了并编译了, <BR>所以最好是把方法名和service&nbsp;URL写在配置文件中,这样就方便多了.
文章来源: http://blog.yesky.com/blog/xioxu/archive/2006/07/11/1490221.html

你可能感兴趣的:(webservice)