日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

xmlrpc与jsonrpc

發布時間:2023/12/2 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xmlrpc与jsonrpc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠程過程調用,是一種在本地的機器上調用遠端機器上的一個過程(方法)的技術,這個過程也被大家稱為“分布式計算”,是為了提高各個分立機器的“互操作性”而發明出來的技術。 按照“數據即程序”的觀點來看,RPC無非是借助一些通信手段來互相傳遞數據(信息),所也她也是“高”層次的通信手段,無非是這種通信手段看起來更像是“過程的調用”,因為她往往以一個“函數”的面目示人,從而掩蓋了她交換信息的實質。

在各種RPC技術中,我想應該以Sun的RPC最為著名,比較流行的網絡文件系統NFS就是建立在SUN RPC技術基礎之上的。
XMLRPC, 顧名思義(我總是喜歡這樣把問題簡單化,因為一個比較好的名字往往能概括出一個東西的本質,如果某個名字讓你摸不著頭腦,我推薦你放棄它,因為那個發明這 個東西的人都不知道它的實質,所以你也就沒有必要在其上浪費無謂的時間和精力。)就是應用了XML技術的RPC。那么什么是XML了?
XML和 RPC一樣也是一個東西的縮寫,這個東西就是eXtensible Markup Language,中文意思就是可擴展標記語言,標記語言就是那種用尖括號(<>)括來括去的那種語言,比如說HTML。XML的可擴展性也 體現在它只定義了語言的格式,而并沒有定義過多的關鍵字,也就是通常所說的標記(Tag),所以用戶可以自由地選擇定義標記。它的這種自由和簡單的語法規 則也使得它廣為流傳,被用來表示各種數據。熟悉Lisp語言(一種被稱為“一大堆”括號的語言)的同學可能覺得XML和Lisp語言有些類似,不同的是 XML用尖括號替代了Lisp語言中的圓括號(())。事實就是他們都是那么相似,那么多語言似乎都是等價的,不同的只是那些應用語言的人。
XML在XMLRPC充當什么角色呢?
答 案就是“交換的數據格式”。在Sun RPC中,調用雙方傳遞的數據是二進制的,而在XMLRPC中數據將是XML格式的。那么為什么用XML而不用二進制呢?我想一方面應該是為了兼容更多的 語言,因為這個世界上除了C/C++等編譯語言,還有很多類似python,perl,javascript等的腳本語言(最近有些文章也稱其為“動態語 言”,因為他們通常不需要自己管理內存),另一方面是為了隔離操作系統的差異,比如說Little Endian和Big Endian的差異等。基于種種原因,XMLRPC選擇了XML這種中間語言作為其信息的格式,然后由各個語言負責將其轉變成各自native(本土)的 數據類型。關于為了兼容各個語言所發明的中間語言還有IDL(Interface Definition Language:接口定義語言),它被用于CORBA接口的定義。
關于XMLRPC的更多信息請到它的官方網站去學習,其中有XMLRPC的規范(Specification),不過是相當得簡單的,因為XMLRPC本身就特別的簡單,不相信?好,那下面我就請大家和我一起來學習如何寫一個加法的XMLRPC。

???xml rpc是使用http協議做為傳輸協議的rpc機制,使用xml文本的方式傳輸命令和數據。一個rpc系統,必然包括2個部分:1.rpc client,用來向rpc server調用方法,并接收方法的返回數據;2.rpc server,用于響應rpc client的請求,執行方法,并回送方法執行結果。RPC是Remote Procedure Call的縮寫,翻譯成中文就是遠程過程調用,是一種在本地的機器上調用遠端機器上的一個過程(方法)的技術,這個過程也被大家稱為“分布式計算”,是為了提高各個分立機器的“互操作性”而發明出來的技術。

簡單描述: rpcclient的工作原理:rpcclient根據URL找到rpcserver -> 構造命令包,調用rpcserver上的某個服務的某個方法 -> 接收到rpcserver的返回,解析響應包,拿出調用的返回結果。 rpcserver的工作原理:啟動一個webserver(在使用內置的webserver的情況下) -> 注冊每個能提供的服務,每個服務對應一個Handler類 ->進入服務監聽狀態。 XML-RPC是一種基于Internet的遠程函數調用協議。 XML-RPC消息都是HTTP-POST請求。請求的主要部分的XML。服務器端執行后的返回結果同樣也是XML格式。 函數調用的參數可以是scalars, numbers, strings, dates等等;也可以是混合型的記錄和結構體。 Request請求樣式 關于請求頭 第一行的URI格式不是特定的。可以為空,如果服務器只處理XML-RPC請求甚至可以只是簡單的一個斜線。可是,如果服務器除了XML-RPC外還提供其他的HTTP請求,URI可以幫助我們把請求指向特定的XML-RPC服務。 User-Agent和Host項是必須的。 Content-Type的值必須是text/xml. Content-Length必須指定,而且必須是正確的值。 有效的格式 XML-RPC具有和XML一樣的有效格式,并且是一個結構。 必須包含一個值為字符型的子元素,用來表明被調用的方法。這個字符必須符合以下規定:大小寫字母、數字0-9、下劃線、點、冒號和斜線。至于怎么解釋這個字符串將有服務器端來決定。 Scalar s 值被嵌入類型標簽中,支持的類型如下表:
Tag Type Example
or four-byte signed integer -12
? 0 (false) or 1 (true) 1
? string hello world
? double-precision signed floating point number -12.214
? date/time 19980717T14:08:55
? base64-encoded binary eW91IGNhbid0IHJlYWQgdGhpcyE=
如果沒有指定類型,默認為字符串。 s 參數值可以是。 每個包含若干,每個包含一個和一個. 如果所示為包含兩個值的 是可以遞歸使用的,任何都里還可以或其他任何類型,包括后面將要說明的。 s 值可以個 一個簡單的有一個元素。可以是任何合法類型。 下面是一個有4個值的array: 12 Egypt 0 -31 elements do not have names. 元素沒有名字。 你可以混合使用上面列出的幾種類型。 可以遞歸使用,其值可以是或其他類型,包括上面說明的。 Response應答樣式 下面是一個 XML-RPC請求: HTTP/1.1 200 OK Connection: close Content-Length: 158 Content-Type: text/xml Date: Fri, 17 Jul 1998 19:55:08 GMT Server: UserLand Frontier/5.1.2-WinNT South Dakota Respnse應答格式 除非底層操作出現錯,否則總是返回200 OK. Content-Type是text/xml。必須設置Content-Length,并且必須是正確的值。 應到內容是一個簡單的XML,可是是包含一個,包含一個,包含一個。 可能含有一個< fault>標簽。的值為類型,有兩個元素,值為< int>的和值為的。 不能既有又有。 JSONRPC和XMLRPC基本類似,最主要的區別就是底層傳遞的數據,一個是XML,一個是JSON。JSON的好處不言而喻,比XML輕便多了,減少傳輸過程中的帶寬。

轉載于:https://www.cnblogs.com/yanhuaqiang/p/11578334.html

總結

以上是生活随笔為你收集整理的xmlrpc与jsonrpc的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。