سؤال

i am using JSON-RPC PHP from http://jsonrpcphp.org/?page=example&lang=en to create php jsonrpc as server

and android-json-rpc as client for android http://code.google.com/p/android-json-rpc/

my server is OK and i can call it from php but when i call it from android it give me that system error and i cant slove it , any one can help ?

07-10 23:36:01.685: W/System.err(457): org.alexd.jsonrpc.JSONRPCException: IO error
07-10 23:36:01.685: W/System.err(457):  at org.alexd.jsonrpc.JSONRPCHttpClient.doJSONRequest(JSONRPCHttpClient.java:142)
07-10 23:36:01.695: W/System.err(457):  at org.alexd.jsonrpc.JSONRPCClient.doRequest(JSONRPCClient.java:77)
07-10 23:36:01.695: W/System.err(457):  at org.alexd.jsonrpc.JSONRPCClient.callJSONArray(JSONRPCClient.java:528)
07-10 23:36:01.695: W/System.err(457):  at com.afaqy.afaqytemp.AfaqyTempActivity.login(AfaqyTempActivity.java:63)
07-10 23:36:01.695: W/System.err(457):  at com.afaqy.afaqytemp.AfaqyTempActivity.access$0(AfaqyTempActivity.java:41)
07-10 23:36:01.695: W/System.err(457):  at com.afaqy.afaqytemp.AfaqyTempActivity$1.onClick(AfaqyTempActivity.java:34)
07-10 23:36:01.695: W/System.err(457):  at android.view.View.performClick(View.java:2408)
07-10 23:36:01.695: W/System.err(457):  at android.view.View$PerformClick.run(View.java:8816)
07-10 23:36:01.695: W/System.err(457):  at android.os.Handler.handleCallback(Handler.java:587)
07-10 23:36:01.695: W/System.err(457):  at android.os.Handler.dispatchMessage(Handler.java:92)
07-10 23:36:01.705: W/System.err(457):  at android.os.Looper.loop(Looper.java:123)
07-10 23:36:01.705: W/System.err(457):  at android.app.ActivityThread.main(ActivityThread.java:4627)
07-10 23:36:01.705: W/System.err(457):  at java.lang.reflect.Method.invokeNative(Native Method)
07-10 23:36:01.705: W/System.err(457):  at java.lang.reflect.Method.invoke(Method.java:521)
07-10 23:36:01.705: W/System.err(457):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
07-10 23:36:01.705: W/System.err(457):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
07-10 23:36:01.705: W/System.err(457):  at dalvik.system.NativeStart.main(Native Method)
07-10 23:36:01.705: W/System.err(457): Caused by: java.net.SocketException: Permission denied
07-10 23:36:01.715: W/System.err(457):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocketImpl(Native Method)
07-10 23:36:01.715: W/System.err(457):  at org.apache.harmony.luni.platform.OSNetworkSystem.createStreamSocket(OSNetworkSystem.java:186)
07-10 23:36:01.715: W/System.err(457):  at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:265)
07-10 23:36:01.715: W/System.err(457):  at java.net.Socket.checkClosedAndCreate(Socket.java:873)
07-10 23:36:01.715: W/System.err(457):  at java.net.Socket.connect(Socket.java:1020)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:143)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:348)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-10 23:36:01.715: W/System.err(457):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-10 23:36:01.725: W/System.err(457):  at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-10 23:36:01.725: W/System.err(457):  at org.alexd.jsonrpc.JSONRPCHttpClient.doJSONRequest(JSONRPCHttpClient.java:110)
07-10 23:36:01.725: W/System.err(457):  ... 16 more

my android code is

        JSONRPCClient clientrpc = JSONRPCClient.create("http://192.168.1.102/server.php",JSONRPCParams.Versions.VERSION_2);
      clientrpc.setConnectionTimeout(2000);

      clientrpc.setSoTimeout(2000);
        try 
        {
          JSONArray stringdata = clientrpc.callJSONArray("login","demo","123456");

          try {
            Toast.makeText(getApplicationContext(),
                        stringdata.getString(1), Toast.LENGTH_SHORT)
                        .show();
        } catch (JSONException e) {
            // TODO Auto-generated catch block
            //  e.printStackTrace();
            Toast.makeText(getApplicationContext(),
                    "ERROR ON CHECKLOGIN", Toast.LENGTH_SHORT)
                    .show();
        }

        }
        catch (JSONRPCException e)
        {
          e.printStackTrace();
            Toast.makeText(getApplicationContext(),
                    "Error ON server connection", Toast.LENGTH_SHORT)
                    .show();
        }

array that json output

    [Logedin] => 1
    [drivers] => Array
        (

}   
    [objects] => Array
        (

}   
هل كانت مفيدة؟

المحلول

Thanks, it's working after I put

<uses-permission android:name="android.permission.INTERNET" />

on AndroidManifest.xml as this error happen due socket permission.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top