發(fā)送一個(gè)請(qǐng)求對(duì)象至服務(wù)端代表一個(gè)rpc調(diào)用, 一個(gè)請(qǐng)求對(duì)象包含下列成員:
jsonrpc
指定JSON-RPC協(xié)議版本的字符串,必須準(zhǔn)確寫(xiě)為“2.0”
method
包含所要調(diào)用方法名稱的字符串,以rpc開(kāi)頭的方法名,用英文句號(hào)(U+002E or ASCII 46)連接的為預(yù)留給rpc內(nèi)部的方法名及擴(kuò)展名,且不能在其他地方使用。
params
調(diào)用方法所需要的結(jié)構(gòu)化參數(shù)值,該成員參數(shù)可以被省略。
id
已建立客戶端的唯一標(biāo)識(shí)id,值必須包含一個(gè)字符串、數(shù)值或NULL空值。如果不包含該成員則被認(rèn)定為是一個(gè)通知。該值一般不為NULL [1],若為數(shù)值則不應(yīng)該包含小數(shù) [2]。
服務(wù)端必須回答相同的值如果包含在響應(yīng)對(duì)象。 這個(gè)成員用來(lái)兩個(gè)對(duì)象之間的關(guān)聯(lián)上下文。
[1]?在請(qǐng)求對(duì)象中不建議使用NULL作為id值,因?yàn)樵撘?guī)范將使用空值認(rèn)定為未知id的請(qǐng)求。另外,由于JSON-RPC 1.0 的通知使用了空值,這可能引起處理上的混淆。
[2]?使用小數(shù)是不確定性的,因?yàn)樵S多十進(jìn)制小數(shù)不能精準(zhǔn)的表達(dá)為二進(jìn)制小數(shù)。
沒(méi)有包含“id”成員的請(qǐng)求對(duì)象為通知, 作為通知的請(qǐng)求對(duì)象表明客戶端對(duì)相應(yīng)的響應(yīng)對(duì)象并不感興趣,本身也沒(méi)有響應(yīng)對(duì)象需要返回給客戶端。服務(wù)端必須不回復(fù)一個(gè)通知,包含那些批量請(qǐng)求中的。
由于通知沒(méi)有返回的響應(yīng)對(duì)象,所以通知不確定是否被定義。同樣,客戶端不會(huì)意識(shí)到任何錯(cuò)誤(例如參數(shù)缺省,內(nèi)部錯(cuò)誤)。
rpc調(diào)用如果存在參數(shù)則必須為基本類(lèi)型或結(jié)構(gòu)化類(lèi)型的參數(shù)值,要么為索引數(shù)組,要么為關(guān)聯(lián)數(shù)組對(duì)象。
索引:參數(shù)必須為數(shù)組,并包含與服務(wù)端預(yù)期順序一致的參數(shù)值。
更多建議: