![](/img/trans.png)
[英]How to use SSL socket between android client and custom java server
[英]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-interfaces和https://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.