內容簡介:在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#代碼下載地址 點擊這裡下載