自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET調(diào)用Web Services方法

開(kāi)發(fā) 后端
本文介紹ASP.NET調(diào)用Web Services方法,使用Atlas服務(wù)器端對(duì)于Web Services調(diào)用的支持,來(lái)講解如何使用HTTP GET來(lái)調(diào)用Web Services方法。

在Atlas中,它的“Web Services” 被放在了一個(gè)特殊的運(yùn)行環(huán)境中執(zhí)行(在某些情況下會(huì)委托給ASP.NET原有組件執(zhí)行,這點(diǎn)在之前的文章中有過(guò)分析),因此,即使我們不是通過(guò)AJAX方式訪問(wèn),只要了解Atlas那一套特殊的運(yùn)行環(huán)境的行為,依舊能夠給我們帶來(lái)一些別的使用方式。下面的示例就將使用Atlas服務(wù)器端對(duì)于Web Services調(diào)用的支持,來(lái)講解如何使用HTTP GET來(lái)調(diào)用Web Services方法(除非特別說(shuō)明,以下所有的解釋均針對(duì)Atlas的擴(kuò)展,而不是ASP.NET的原有Web Services支持)。

首先,我們寫一個(gè)Web Serivces方法:

  1. [WebMethod]  
  2. [WebOperation(true, ResponseFormatMode.Xml)]  
  3. public XmlDocument Vote(string name, int id)  
  4. {  
  5. XmlDocument responseDoc = new XmlDocument();  
  6. responseDoc.LoadXml(  
  7.  "<?xml-stylesheet type=\"text/xsl\" href=\"Vote.xsl\"?>" +  
  8.  "<response><user></user><id></id></response>");  
  9. responseDoc.SelectSingleNode("http://user").InnerText = name;  
  10. responseDoc.SelectSingleNode("http://id").InnerText = id.ToString();  
  11. return responseDoc;  
  12. }  
  13.  

在Atlas中,HTTP POST為Web Services的默認(rèn)支持方法,也是必然的支持方法。而如果需要使該Web Service方法支持HTTP GET的話,就必須如上面代碼一樣,使用Microsoft.Web.Services.WebOperationAttribute進(jìn)行標(biāo)注。 WebOperationAttribute的***個(gè)參數(shù)就是getVerbEnabled,true則表示支持HTTP GET方法。第二個(gè)參數(shù)Microsoft.Web.Services.ResponseFormatMode.Xml則表示結(jié)果對(duì)象的輸出方式為 XML,而不是默認(rèn)的JSON。

在這里,我們使用XML的原因是因?yàn)镴SON在這里沒(méi)有任何意義。返回JSON后是為了在獲得這些內(nèi)容之后通過(guò)Javascript函數(shù)eval執(zhí)行,從而獲得JSON表示的對(duì)象。而在這里,我們的目的是將結(jié)果顯示給用戶看,所以使用XML形式返回,再加上XSL的支持,就能以HTML的形式顯示給用戶了。

然后就是簡(jiǎn)單的XSL:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <xsl:stylesheet version="1.0" 
  3. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  4. <xsl:template match="/response"> 
  5. <html> 
  6. <head> 
  7. <title>Thanks for your participation.</title> 
  8. </head> 
  9. <body style="font-family:Verdana; font-size:13px;"> 
  10. <h4>Thanks for your participation.</h4> 
  11. <div> 
  12. <xsl:text>Dear </xsl:text> 
  13. <xsl:value-of select="user"/> 
  14. <xsl:text>, you've voted for item </xsl:text> 
  15. <xsl:value-of select="id"/> 
  16. <xsl:text>.</xsl:text> 
  17. </div> 
  18. </body> 
  19. </html> 
  20. </xsl:template> 
  21. </xsl:stylesheet>  

接下來(lái)就是我們的HTML文件。我們的目的非常簡(jiǎn)單,就是得到用戶輸入的信息,拼接成URL之后在新窗口中打開(kāi)。因此我們?cè)谶@里根本無(wú)需使用Atlas。代碼如下:

  1. <div>Name:<input type="text" id="txtName" /></div> 
  2. <div>Item:  
  3. <select id="comboItem"> 
  4. <option value="1">Item 1</option> 
  5. <option value="2">Item 2</option> 
  6. <option value="3">Item 3</option> 
  7. <option value="4">Item 4</option> 
  8. <option value="5">Item 5</option> 
  9. </select> 
  10. </div> 
  11. <input type="button" value="Vote" onclick="vote()" /> 

點(diǎn)擊“Vote”按鈕后,就會(huì)調(diào)用Javascript函數(shù)Vote()。代碼如下:

  1. <script language="javascript"> 
  2. function vote()  
  3. {  
  4. var url = "HttpGetWebService.asmx?mn=Vote";  
  5. url += ("&name=" + encodeURI(document.getElementById("txtName").value));  
  6. url += ("&id=" + document.getElementById("comboItem").value);  
  7.  
  8. window.open(url);  
  9. }  
  10. </script> 

我們需要拼接的URL很簡(jiǎn)單:首先使用在 QueryString里將mn設(shè)為我們即將調(diào)用Web Services方法名,然后就是在QueryString里調(diào)用Web Services方法所需的參數(shù)了。請(qǐng)注意,既然是使用URL拼接,那么就必須使用encodeURI進(jìn)行編碼后才能使用,否則可能會(huì)出現(xiàn)異常情況。以上介紹ASP.NET調(diào)用Web Services方法。

【編輯推薦】

  1. ASP.NET MVC Web應(yīng)用程序工程
  2. IIS6的ASP.NET ISAPI請(qǐng)求處理過(guò)程
  3. ASP.NET控件的七種用戶管理相關(guān)控件
  4. 對(duì)ASP.Net進(jìn)行RSA加密
  5. ASP.NET得到數(shù)據(jù)庫(kù)字符串的方法
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-02-20 09:19:56

AJAXASP.NETWeb Service

2009-12-25 10:36:10

ASP.NET 和 X

2009-07-21 10:24:21

.NET RIA SeASP.NET

2009-07-23 15:11:43

XML Web服務(wù)方法ASP.NET

2009-07-27 09:20:13

替換Sys.ServiASP.NET

2009-07-21 09:43:36

調(diào)用UpdatePanASP.NET

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-29 17:16:47

2009-07-28 15:53:43

ASP.NET Web

2009-07-27 17:54:39

WCF服務(wù)ASP.NET

2009-07-28 16:29:06

XML Web服務(wù)ASP.NET構(gòu)造

2009-07-28 17:34:28

ASP.NET XML

2009-07-23 15:18:30

創(chuàng)建XML Web服務(wù)ASP.NET

2009-07-29 09:38:06

Web開(kāi)發(fā)ASP.NET

2009-07-28 13:26:34

Render方法ASP.NET

2009-08-05 16:59:38

ASP.NET調(diào)用Ex

2014-07-31 09:28:09

ASP.NETWeb API

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-27 14:41:33

ASP.NET調(diào)用存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)