成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發(fā)編程>>VS.NET>>新聞內(nèi)容
用VS.NET 2003開發(fā)和調(diào)用Web Service實例
作者:本站原創(chuàng) icech 發(fā)布時間:2004-6-30 11:34:50 文章來源:西部E網(wǎng)

  “MS.NET平臺內(nèi)建了對Web Service的支持,包括Web Service的構(gòu)建和使用。與其它開發(fā)平臺不同,使用.NET平臺,你不需要其他的工具或者SDK就可以完成Web Service的開發(fā)了。.NET Framework本身就全面支持Web Service,包括服務(wù)器端的請求處理器和對客戶端發(fā)送和接受SOAP消息的支持”(前面這句話是icech借用別人的)。本文將一步一步帶你用Microsoft Visual Studio .NET 2003(后面簡稱VS.Net 2003)創(chuàng)建和使用一個簡單的Web Service。

   1、用VS.Net 2003創(chuàng)建一個最簡單的Web Service

  首先,打開VS.Net 2003, 按Ctrl+Shift+N(或者打開“文件-新建-項目”),選擇“ASP.NET Web服務(wù)”。生成WebService默認文件是Service1.asmx。

 
(圖1)

  查看Service1.asmx.cs代碼,你會發(fā)現(xiàn)VS.Net 2003已經(jīng)為Web Service文件建立了缺省的框架。原始代碼為:

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Web;
using System.Web.Services;

namespace WebService1
{
///


/// Service1 的摘要說明。
///

public class Service1 : System.Web.Services.WebService
{
public Service1()
{
//CODEGEN: 該調(diào)用是 ASP.NET Web 服務(wù)設(shè)計器所必需的
InitializeComponent();
}

#region 組件設(shè)計器生成的代碼

//Web 服務(wù)設(shè)計器所必需的
private IContainer components = null;

///


/// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
///

private void InitializeComponent()
{
}

///


/// 清理所有正在使用的資源。
///

protected override void Dispose( bool disposing )
{
if(disposing && components != null)
{
components.Dispose();
}
base.Dispose(disposing);
}

#endregion

// WEB 服務(wù)示例
// HelloWorld() 示例服務(wù)返回字符串 Hello World
// 若要生成,請取消注釋下列行,然后保存并生成項目
// 若要測試此 Web 服務(wù),請按 F5 鍵

// [WebMethod]
// public string HelloWorld()
// {
// return "Hello World";
// }
}
}

(代碼1)

  直接使用“WEB 服務(wù)示例”,我們先看一下最簡單的Web Service是什么樣子的。去掉53~58行的注釋后(如代碼2),直接按F5編譯查看效果。

[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
(代碼2)

點擊顯示頁面(如圖2)中的“HelloWorld”超鏈接,跳轉(zhuǎn)到下一頁面(如圖3)

(圖2)


(圖3)

  再點擊“調(diào)用”按鈕,就可以看到用XML格式返回的Web Service結(jié)果(如圖4)。說明我們的Web Service環(huán)境沒有問題,而且還初步接觸了一下最簡單的Web Service。

 
(圖4)

  2、創(chuàng)建一個簡單帶有功能的Web Service

  網(wǎng)上有很多例子都是計算a+b=sum和顯示問候語的,所以我們也來練習一下。我們建立一個整數(shù)加法和顯示西部E網(wǎng)問候語的Web Service的例子,然后我們在下一節(jié)練習如何調(diào)用它。

  另外:WebMethod和WebService都有一個Description屬性,功能就是描述一下服務(wù)功能,具體方法可見:
   [WebMethod(Description="計算a+b=sum的功能")]和
   [WebService (Namespace="http://www.wsalc.com", Description = "<font color='#FF0000'><b>用 VS.NET 開發(fā)一個 Web Service 實例< /b></font>")]

[WebMethod(Description="計算a+b=sum的功能")]
public int Add(int a,int b)
{
return a+b;
}

[WebMethod(Description="顯示問候語的功能")]
public string Show(string yourname)
{
return "西部E網(wǎng) www.wsalc.com"+"歡迎"+yourname;
}

(代碼3)

  運行后顯示的結(jié)果如圖5,具體的操作和測試方式就不細說了,和上面的HelloWorld差不多。如果測試正確性,可以輸入“http://localhost/WebService1/Service1.asmx/Show?yourname=icech”或者“http://localhost/WebService1/Service1.asmx/Add?a=3&b=6”(如圖6)。

(圖5)


(圖6)

  3、用ASP調(diào)用Web Service

  如果要用ASP來調(diào)用WevService,就一定要使用SOAP Toolkit或者XMLHTTP, 使用SOAP Client需要專門安裝SOAP Toolkit,這對客戶端來說不具有通用性,因此我們就學習使用XML來進行對WebService的調(diào)用。

<%
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =Server.CreateObject("MSXML.DOMDocument")
strWebserviceURL = "http://localhost/WebService1/Service1.asmx/Add"
'設(shè)置參數(shù)和值
strRequest = "a=5&b=6"
objHTTP.Open "POST", strWebserviceURL, False
'設(shè)置Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'查看狀態(tài)值
if objHTTP.Status=200 then
xmlStr = xmlDOC.xml
xmlStr = Replace(xmlStr,"&lt;","<",1,-1,1)
xmlStr = Replace(xmlStr,"&gt;",">",1,-1,1)
Response.Write xmlStr
else
Response.Write objHTTP.Statu&"<br>"
Response.Write objHTTP.StatusText
end if
%>
(代碼4)

  注意:代碼中的“http://localhost/WebService1/Service1.asmx/Add”是在第2節(jié)中其中“計算a+b=sum功能”的Web Service地址。

  以上代碼在本地測試都沒有問題(在部署webservice的本地機器上測試的),然而把strWebserviceURL = "http://localhost/WebService1/Service1.asmx/Add"改為部署在其他機器上的WebService時,卻出了問題,結(jié)果一直是返回500錯誤,即objHTTP.Status一直都為500。
  原因在于.Net Framework1.1默認不支持HttpGet和HttpPost。如果修改webservice里的web.config增加上代碼5后,上代碼就可以調(diào)用遠程機器上的WebService了。

<webServices>
   <protocols>
     <add name="HttpPost"/>
     <add name="HttpGet"/>
   </protocols>
</webServices>
(代碼5)

  4、用VBScript調(diào)用Web Service

  大家都清楚,其實VB、ASP、VBScript的語法和代碼都及其相似,其實寫出來他們其中任何一個都能出來另外幾個。

<script language="vbscript">
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Set xmlDOC =CreateObject("MSXML.DOMDocument")
strWebserviceURL = "http://icech/WebService1/Service1.asmx/Add"
'設(shè)置參數(shù)和值
strRequest = "a=2&b=3"
objHTTP.Open "POST", strWebserviceURL, False
'設(shè)置Content-Type很重要
objHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objHTTP.Send(strRequest)
bOK = xmlDOC.load(objHTTP.responseXML)
'查看狀態(tài)值,這里是用MsgBox的方式顯示的,你可以根據(jù)
'自己的需要用其他方式顯示
msgBox objHTTP.Status
msgbox objHTTP.StatusText
'objHTTP.Status=200,這里就可以處理返回的xml片段了
'如果需要,可以替換返回的xml字符串當中的&lt;和&gt;
xmlStr = xmlDOC.xml
xmlStr = Replace(xmlStr,"&lt;","<",1,-1,1)
xmlStr = Replace(xmlStr,"&gt;",">",1,-1,1)
msgbox xmlStr
</script>
(代碼6)

  5、用ASP.Net調(diào)用Web Service

  在VS.Net 2003中新建窗體(我這里使用的C#),我這里的文件是WebForm1.aspx,編輯WebForm1.aspx.cs代碼。

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebService1
{
///


/// WebForm1 的摘要說明。
///

public class WebForm1 : System.Web.UI.Page
{
private void Page_Load(object sender, System.EventArgs e)
{
// 在此處放置用戶代碼以初始化頁面
int a=5;
int b=6;
Service1 AddNum=new Service1();
string sum=AddNum.Add(a,b).ToString();
Response.Write("SUM="+sum);
}

#region Web 窗體設(shè)計器生成的代碼
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 該調(diào)用是 ASP.NET Web 窗體設(shè)計器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

///


/// 設(shè)計器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
///

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}

(代碼7)

  這些都是最基本最常見的一些測試,網(wǎng)上有很多,icech只是進行了整理,希望對初學的朋友能夠有所幫助。我的網(wǎng)站地址是http://www.wsalc.com/,論壇地址是http://bbs.weste.net/

  后面我還會繼續(xù)對Web Service進行一些學習,主要是針對數(shù)據(jù)庫和更加復雜和實用的一些功能,希望大家能夠喜歡。


最新更新
·C#中使用Split分隔字符串的技
·VS2008開發(fā)中Windows Mobile
·PC機和移動設(shè)備上絕對路徑的
·C#程序加殼的方法(使用Sixx
·當前上下文中不存在名稱Conf
·請插入磁盤:Visual Studio 2
·用VS.NET讀取Flash格式文件信
·在ASP.NET中使用AJAX的簡單方
·VS.NET 2005中常用的一些代碼
·安裝VS.NET 2005 SP1補丁全攻
相關(guān)信息
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 罗定市| 工布江达县| 南澳县| 东光县| 肥城市| 桐乡市| 台南县| 上栗县| 孟津县| 苏州市| 石台县| 额济纳旗| 东阳市| 蒙自县| 屏山县| 姚安县| 磴口县| 连山| 华安县| 唐山市| 婺源县| 昌江| 西丰县| 海伦市| 铜川市| 雅江县| 通山县| 牟定县| 无锡市| 玉龙| 商河县| 孟津县| 易门县| 龙泉市| 鸡东县| 黄浦区| 抚顺市| 吉木乃县| 颍上县| 喜德县| 长春市|