1. 程式人生 > >thrift+python 報錯Invalid method name

thrift+python 報錯Invalid method name

在用thrift通訊的時候, python寫的客戶端, 發現執行不起來, 報錯Invalid method name "xxx"

我很納悶,因為thrift自動生成了函式程式碼, 名稱絕對沒打錯, 引數也對,為什麼就不行?

後來我發現

 16    transport = TTransport.TBufferedTransport(transport)
 17     protocol = TBinaryProtocol.TBinaryProtocol(transport)
 18
 19     client = Client(protocol)

這幾行程式碼可能有問題. 檢視伺服器程式碼,發現伺服器用的是TFramedTransport,, 這種是幀傳輸,可以設定包的定長,我用的是TBufferedTansport, 出現錯誤,

改正以後發現可以通訊了