程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> Subtext(12) -- CookComputing.XmlRpc

Subtext(12) -- CookComputing.XmlRpc

編輯:.NET實例教程

XML-RPC 在Subtext中應用。

先來回顧下XML-RPC的定義:

XML-RPC:是一套標准和一系列的應用,它允許在不同操作系統運行、不同環境下基於Internet的遠程過程調用。

這個調用是基於HTTP協議傳輸、XML作為數據載體的。

下面結合Subtext中來說明下。

Subtext中有兩處應用XML-RPC,一處是MetaWeblogAPI,另外一處是PingBack。

處理XML-RPC有兩個地方需要注意,一個是XML-RPC的服務器端,一個是XML-RPC的客戶端。

XML-RPC客戶端部分代碼:

 



public class PingBackNotificatinProxy : XMLRpcClIEntProtocol

...{

public PingBackNotificatinProxy()
...{


public bool Ping(string pageText, Uri sourceURI, Uri targetURI) 

...{...} 

private string GetPingBackURL(string pageText, Uri postUrl) 

...{...} 

[XMLRpcMethod("pingback.ping")]
public void Notify(string sourceURI, string targetURI)
...{
    Invoke("Notify", new object[] ...{ sourceURI, targetURI });



 

PingBackNotificatinProxy 繼承了XmlRpcClientProtocol這個類,與官方網站上面給出的例子不同,本應該是實現IXmlRpcProxy這個接口,仔細一看,原來XmlRpcClIEntProtocol已經實現了IXMLRpcProxy接口。這樣通過PingBackNotificatinProxy的Notify方法就可以發送請求了。

而作為服務器端,XML-RPC服務被包含在IIS環境裡面了,因此實現XML-RPC服務只要繼承XMLRpcService這個類就可以了。

XML-RPC服務器端部分代碼:

 



public class PingBackService : XMLRpcService
...{

[XMLRpcMethod("pingback.ping", Description="Pingback server implementation")] 
public string pingBack(string sourceURI, string targetURI)
...{ ...} 

}

 

可以通過XMLRpcMethod這個屬性看出客戶端和服務器端的聯系,當客戶端發送Notify方法請求時,服務器端接收到後會調用pingBack方法進行處理。

參考資料:

XML-RPC協議, XML-RPC.Net 及其 FAQ


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved