Hprose for Java客戶端(四)

2021-08-25 00:15:29 字數 1979 閱讀 3755

[b][size=x-large]異常處理[/size][/b]

[b][size=large]同步呼叫異常處理[/size][/b]

同步呼叫下的發生的異常將被直接丟擲,使用try...catch語句塊即可捕獲異常,通常伺服器端呼叫返回的異常是hproseexception型別。而如果通訊發生錯誤,一般為ioexception型別。但是在呼叫過程中也可能丟擲其它型別的異常,為了保險,您可以使用catch捕獲throwable型別來處理全部可能發生的異常。

另外,如果您採用**介面方式呼叫,需要注意,您捕捉到的異常是被包裝後的,使用getcause方法來獲取真正包含出錯資訊的異常。

[b][size=large]非同步呼叫異常處理[/size][/b]

非同步呼叫時,如果呼叫過程中發生異常,異常將不會被丟擲。

如果您希望能夠處理這些異常,只需要給hprose客戶端物件指定合適的onerror事件即可,onerror事件的型別為hprose.common.hproseerrorevent,它是乙個介面型別,使用非常簡單,例如:

該介面只有乙個方法handler,第乙個引數表示發生錯誤的遠端方法名,第二個引數為丟擲並**獲的異常物件。

該事件只對非同步呼叫有效,同步呼叫下的異常將被直接丟擲,而不會被該事件捕獲並處理。

[b][size=x-large]http引數設定[/size][/b]

目前的版本只提供了http客戶端實現,針對於http客戶端,有一些特別的設定,例如**伺服器、持久連線、http標頭等設定,下面我們來分別介紹。

[b][size=large]**伺服器[/size][/b]

預設情況下,**伺服器是被禁用的。可以通過setproxyhost、setproxyport來設定http**伺服器的位址和埠。proxyhost可以是ip或者網域名稱,用字串來表示,預設值為null,表示禁用**伺服器。proxyport為埠號,用整數表示,預設是80。

如果您所使用的**伺服器需要身份驗證,可以通過setproxyuser和setproxypass來設定用於**伺服器上驗證的使用者名稱和密碼。這兩個屬性的預設值也為null,表示不需要身份驗證。

[b][size=large]持久連線[/size][/b]

預設情況下,持久連線是關閉的。通常情況下,客戶端在進行遠端呼叫時,並不需要跟伺服器保持持久連線,但如果您有連續的多次呼叫,可以通過開啟這個特性來優化效率。

跟持久連線有關的屬性有兩個,它們分別是keepalive和keepalivetimeout,可以通過它們的set方法(setkeepalive和setkeepalivetimeout)來對它們進行設定。將keepalive屬性設定為true時,表示開啟持久連線特徵。keepalivetimeout表示持久連線超時時間,單位是秒,預設值是300秒。

[b][size=large]http標頭[/size][/b]

有時候您可能需要設定特殊的http標頭,例如當您的伺服器需要basic認證的時候,您就需要提供乙個authorization標頭。設定標頭很簡單,只需要呼叫setheader方法就可以啦,該方法的第乙個引數為標頭名,第二個引數為標頭值,這兩個引數都是字串型。如果將第二個引數設定為null,則表示刪除這個標頭。

標頭名不可以為以下值:

[list]

[*]context-type

[*]context-length

[*]connection

[*]keep-alive

[*]host

[/list]

因為這些標頭有特別意義,客戶端會自動設定這些值。

另外,cookie這個標頭不要輕易去設定它,因為設定它會影響cookie的自動處理,如果您的通訊中用到了session,通過setheader方法來設定cookie標頭,將會影響session的正常工作。

Windows TortoiseSVN 客戶端操作

1.了解svn圖示集 任意位置 右鍵 tortoisesvn 設定 s 圖示覆蓋 圖示集 2.設定所有磁碟圖示覆蓋 任意位置 右鍵 tortoisesvn 設定 s 圖示覆蓋 磁碟驅動器型別 勾選全部選項 3.瀏覽版本庫 任意位置 右鍵 tortoisesvn 版本庫瀏覽 r 在url 網際網路資源...

客戶服務 客戶流失該如何應對

一 客戶流失帶來的損失 據調查顯示,乙個公司平均5年就會失去一半的客戶。而失去乙個老客戶帶來的巨大損失,可能需要開發10個新客戶才可以彌補。比如,客戶流失一直是令電信業最困擾的問題,客戶流失每年給美國的運營商造成高達90億美元的收入損失,以及75億美元獲得客戶的費用。另外據in stat mdr市場...

會投訴的客戶才是真客戶

為什麼買香草冰淇淋汽車就會秀逗的故事?請三思而後行!不要輕易下結論 一切皆有可能!有一天美國通用汽車公司的龐帝雅克 pontiac 部門收到一封客戶抱怨信,上面是這樣寫的 這是我為了同一件事第二次寫信給你,我不會怪你們為什麼沒有回信給我,因為我也覺得這樣別人會認為我瘋了,但這的確是乙個事實。我們家有...