Asp.net Application 使用 JsonRPC 調用函數 demo

來源:互聯網
上載者:User

內容簡介:在asp.net application中使用json rpc 調用方法,擷取傳回值

1、vs建立空asp.net application ,這裡.net framework選擇 4.0 + 

2、下載最新版的JSON-RPC.NET Asp.Net package

地址:

http://jsonrpc2.codeplex.com/releases/view/100345

這裡下載的是JSON-RPC.NET Server 1.0.3

3、引入以下兩個檔案


4、同時要引入


否則項目調試運行會出錯

下載地址 http://json.codeplex.com/

當前項目引入的是 net 4.0版

5、在web.config檔案中添加相應的Http Handler

伺服器為(ASP.NET development server) 或者IIS6 則添加下列內容到 <system.web>標籤中

<httpHandlers>      <add type="AustinHarris.JsonRpc.Handlers.AspNet.JsonRpcHandler" verb="*" path="*.rpc"/>    </httpHandlers>

調試伺服器為 IIS 7 或以上版本,則添加如下內容到 <system.webServer>標籤中

 <handlers>      <add name="jsonrpc" type="AustinHarris.JsonRpc.Handlers.AspNet.JsonRpcHandler" verb="*" path="*.rpc"/>    </handlers>

6、下一步是建立一個測試類別,並繼承自 JsonRpcService類,並引入相應的命名空間 using AustinHarris.JsonRpc;

public class HelloWorldService: JsonRpcService{    }

7、在該類中添加一個屬性為  [JsonRpcMethod]的測試方法 

 [JsonRpcMethod]        private string helloWorld(string message){            return "Hello World "+ message;        }

8、添加Global.asax檔案,並在其中添加一個靜態成員

public class Global : System.Web.HttpApplication {    private static HelloWorldService service = new HelloWorldService();}


9、現在可以在我們的頁面中通過json-rpc調用方法了,添加一個defualt頁面,並發送一個post請求給咱們的json-rpc處理,這裡的url為你項目實際的url和連接埠號碼

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="defualt.aspx.cs" Inherits="TestJsonRpc.defualt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title></title>   <script type="text/javascript">    window.onerror=function(errorMessage,errorUrl,errorNum)      {          alert(errorMessage+errorUrl+errorNum);      }       var xmlHttp;       function createXmlHttp()       {          if(window.ActiveXObject)           xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");          else           xmlHttp=new XMLHttpRequest();       }       function startRequest()       {        try        {           createXmlHttp();         var url = "http://localhost:2667/json.rpc";            xmlHttp.open("post",url,true);         xmlHttp.setRequestHeader("content-length", 62); //post提交設定項           xmlHttp.setRequestHeader("User-Agent", "Fiddler"); //post提交設定項           xmlHttp.setRequestHeader("content-type", "Application/Json-Rpc"); //post提交設定項           xmlHttp.onreadystatechange =onComplete;         //將名值對發送到伺服器           xmlHttp.send('{"method": "helloWorld", "params": ["Hello World"], "id": 1  }');         }         catch(e)         {           alert(e.message);         }        }       function onComplete()       {          if(xmlHttp.readyState==4&&xmlHttp.status==200)           {             //顯示結果             alert(xmlHttp.responseText);                   }       }  </script>  </head><body>    <form id="form1" runat="server">    <div>        <input type="button" onclick ="startRequest()" value="TestJsonRpc" />    </div>    </form></body></html>

10、點擊TestJsonRpc按鈕,返回 

{"jsonrpc":"2.0","Result":"Hello World Hello World","Id":"1"}

此時表明函數調用成功,並擷取到了傳回值 


文章內容來自http://jsonrpc2.codeplex.com/ 更多關於jsonrpc的內容參看這裡


附上demo的C#代碼下載地址 點擊這裡下載

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.