簡體   English   中英

如何使用android-json-rpc進行Android(客戶端)/ Java(服務器)設置?

[英]How to use android-json-rpc for Android(client)/Java(server) setup?

我正在嘗試使用https://code.google.com/p/android-json-rpc/ for android並在java服務器上使用https://github.com/RitwikSaikia/jsonrpc

我已經按照android-json-rpc客戶端和jsonrpc服務器設置的示例進行了操作。

在我的Android應用程序中使用android-json-rpc時,我會執行以下操作。

JSONRPCClient client = JSONRPCClient.create("http://service/uri",JSONRPCParams.Versions.VERSION_2);
client.setConnectionTimeout(2000);
client.setSoTimeout(2000);
try 
{
  client.callString("SimpleCalculatorImpl");
  double i = client.callDouble("add", 56, 25);
}
catch (JSONRPCException e)
{
  e.printStackTrace();
}

對於Java服務器,我已經按照https://github.com/RitwikSaikia/jsonrpc#defining-interfaceshttps://github.com/RitwikSaikia/jsonrpc#hosting-the-service上的示例進行了操作。

當我調用該方法時

String string = client.callString("SimpleCalculatorImpl");

它拋出一個JSONRPCException:無法將結果轉換為來自callString方法內部的String。

有沒有人遇到過這個錯誤,或者知道更好的庫用於Android客戶端到Java服務器的JSON?

我沒有嘗試過該庫,但我知道當json未正確解析時會發生此異常,嘗試復制結果並通過JSONLint等json驗證器運行它

希望這可以幫助。

我實際上只是在Android客戶端和Java服務器端都使用了https://github.com/FasterXML/jackson並創建了我自己的帶有反射的servlet來處理對Java服務器上的方法的調用並在Android客戶端上獲取結果

我沒有使用過任何一個庫,但從簡要地看一下,似乎jsonrpc服務器庫用executor.addHandler("calc", calcImpl, Calculator.class);注冊一個前綴處理程序executor.addHandler("calc", calcImpl, Calculator.class); ,因此“add”方法的完全限定名稱為“calc.add”。 所以只需在您的代碼中嘗試:

double i = client.callDouble("calc.add", 56, 25);

無需調用client.callString("SimpleCalculatorImpl"); ,因為callString()應該用於返回String結果的RPC調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM