Reputation: 183
New to Android, I have .Net webservices residing in my PC. when my Android application calls the webservice from emulator with below code (where XX.XX.XX.XX is my IP address), it runs perfectly.
HttpClient client = new DefaultHttpClient();
HttpConnectionParams.setConnectionTimeout(client.getParams(), 1000000); //Timeout Limit
HttpResponse response;
try {
HttpPost post = new HttpPost("http://XX.XX.XX.XX/SDService_SAFTI/ServiceSD.svc/LoginUser");
But running the same code in mobile does not work. Error as below. Can it be a port issue? Both phone and PC are on the same network. Any suggestions are welcome. Many thanks in advance.
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: org.apache.http.conn.ConnectTimeoutException: Connect to /XX.XX.XX.XX:80 timed out
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:163)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:597)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:517)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:495)
03-03 08:55:37.350 3273-4019/com.androidatc.customviewindrawer W/System.err: at com.androidatc.customviewindrawer.LoginFrag$1.run(LoginFrag.java:121)
After running for some time, now its showing below logcat.
03-03 09:05:56.793 12466-12685/com.androidatc.customviewindrawer I/System.out: [CDS]connect[/192.168.0.102:80] tm:1000
03-03 09:08:09.392 12466-12517/com.androidatc.customviewindrawer I/ViewRootImpl: ANR Key Analyze: No Key event currently.
03-03 09:08:09.394 12466-12517/com.androidatc.customviewindrawer I/ViewRootImpl: ANR Key Analyze: Previeous Event null,finish at 2016-03-03 09:05:56.094
03-03 09:08:09.394 12466-12517/com.androidatc.customviewindrawer I/ViewRootImpl: ANR Motion Analyze: No motion event currently.
03-03 09:08:09.395 12466-12517/com.androidatc.customviewindrawer I/ViewRootImpl: ANR Motion Analyze: Previeous Event MotionEvent { action=ACTION_UP, id[0]=0, x[0]=609.4357, y[0]=967.4961, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=243593704, downTime=243593647, deviceId=6, source=0x1002 },finish at 2016-03-03 09:05:56.778
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: Caught a RuntimeException from the binder stub implementation.
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: java.lang.NullPointerException: Attempt to invoke interface method 'android.os.IBinder com.mediatek.anrappmanager.IFrameworks.serviceManagerGetService(java.lang.String)' on a null object reference
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at com.mediatek.anrappmanager.ANRManagerNative$1.b(SourceFile:77)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at com.mediatek.anrappmanager.ANRManagerNative$1.c(SourceFile:75)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at com.mediatek.anrappmanager.ANRManagerNative$a.get(SourceFile:97)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at com.mediatek.anrappmanager.ANRManagerNative.getDefault(SourceFile:35)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at com.mediatek.anrappmanager.ANRAppManager.dumpMessageHistory(SourceFile:59)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1232)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:679)
03-03 09:08:09.404 12466-12488/com.androidatc.customviewindrawer W/Binder: at android.os.Binder.execTransact(Binder.java:451)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'android.os.IBinder com.mediatek.anrappmanager.IFrameworks.serviceManagerGetService(java.lang.String)' on a null object reference
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at com.mediatek.anrappmanager.ANRManagerNative$1.b(SourceFile:77)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at com.mediatek.anrappmanager.ANRManagerNative$1.c(SourceFile:75)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at com.mediatek.anrappmanager.ANRManagerNative$a.get(SourceFile:97)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at com.mediatek.anrappmanager.ANRManagerNative.getDefault(SourceFile:35)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at com.mediatek.anrappmanager.ANRAppManager.dumpMessageHistory(SourceFile:59)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1232)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:679)
03-03 09:08:09.405 12466-12488/com.androidatc.customviewindrawer W/System.err: at android.os.Binder.execTransact(Binder.java:451)
03-03 09:08:09.453 12466-12480/com.androidatc.customviewindrawer I/art: Thread[9,tid=12480,WaitingInMainSignalCatcherLoop,Thread*=0x55a71953d0,peer=0x12c53080,"Signal Catcher"]: reacting to signal 3
03-03 09:08:09.661 12466-12480/com.androidatc.customviewindrawer I/art: Wrote stack traces to '/data/anr/traces.txt'
Updated - screenshot - port forwarding:
Upvotes: 0
Views: 394
Reputation: 1284
The way I do this is by using port forwarding:
1) Connect your device and open chrome on both your mobile and laptop browser.
2) On the URL tab, type chrome://inspect
3) Click on port forwarding and add a new row, with port as 8888 and IP as webservice_url:port.
4) Now in your android application code, replace webservice_url:port with localhost:8888. Basically now on 8888 your mobile will call the computer webservice url. Note: Make sure that chrome is open on both your laptop and the device. And when you type chrome://inspect you should be able to see the device you have attached.
Refer to this for more help: https://developer.chrome.com/devtools/docs/remote-debugging
Also add <uses-permission android:name="android.permission.INTERNET"/>
to your Androidmanifest.xml
Upvotes: 1