4. 請(qǐng)求對(duì)象

2018-02-24 16:10 更新

發(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ù)。

4.1 通知

沒(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ò)誤)。

4.2 參數(shù)結(jié)構(gòu)

rpc調(diào)用如果存在參數(shù)則必須為基本類(lèi)型或結(jié)構(gòu)化類(lèi)型的參數(shù)值,要么為索引數(shù)組,要么為關(guān)聯(lián)數(shù)組對(duì)象。

  • 索引:參數(shù)必須為數(shù)組,并包含與服務(wù)端預(yù)期順序一致的參數(shù)值。

  • 關(guān)聯(lián)名稱:參數(shù)必須為對(duì)象,并包含與服務(wù)端相匹配的參數(shù)成員名稱。沒(méi)有在預(yù)期中的成員名稱可能會(huì)引起錯(cuò)誤。名稱必須完全匹配,包括方法的預(yù)期參數(shù)名以及大小寫(xiě)。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)