0

I want to call a url from my android application without opening the web browser and without receiving any data from the web page. The idea is that I am passing an id within the url I am calling and when the server receives the request it will process the id properly. I tried to POST it first but I couldn't receive the POST request (I am using Django) and couldn't figure out why, and have described the problem here, but got no answer! So I am trying a GET request following this answer and this which are similar, but I am getting this error:

03-18 15:23:04.814 23351-23351/com.tutorial.mpin.qr_code_2 E/AndroidRuntime: FATAL EXCEPTION: main
                                                                             at android.app.ActivityThread.deliverResults(ActivityThread.java:3462)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505)
 at android.app.ActivityThread.access$1100(ActivityThread.java:150)
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346)
 at android.os.Handler.dispatchMessage(Handler.java:99)
 at android.os.Looper.loop(Looper.java:213)
 at android.app.ActivityThread.main(ActivityThread.java:5225)
 at java.lang.reflect.Method.invokeNative(Native Method)
 at java.lang.reflect.Method.invoke(Method.java:525)
 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
 at dalvik.system.NativeStart.main(Native Method)
 Caused by: android.os.NetworkOnMainThreadException
 at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1142)
 at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
 at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
 at java.net.InetAddress.getAllByName(InetAddress.java:214)
 at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:141)
 at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
 at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
 at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
 at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
 at com.tutorial.mpin.qr_code_2.MainActivity.onActivityResult(MainActivity.java:138)
 at android.app.Activity.dispatchActivityResult(Activity.java:5322)
 at android.app.ActivityThread.deliverResults(ActivityThread.java:3458)
 at android.app.ActivityThread.handleSendResult(ActivityThread.java:3505) 
 at android.app.ActivityThread.access$1100(ActivityThread.java:150) 
 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1346) 
 at android.os.Handler.dispatchMessage(Handler.java:99) 
 at android.os.Looper.loop(Looper.java:213) 
 at android.app.ActivityThread.main(ActivityThread.java:5225) 
 at java.lang.reflect.Method.invokeNative(Native Method) 
 at java.lang.reflect.Method.invoke(Method.java:525) 
 at    com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741) 
 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557) 
 at dalvik.system.NativeStart.main(Native Method) 

I think it is because the webpage is not returning any thing!

All I need is to send the id in the url to the web page without returning any value to the android app.

Thank you

Community
  • 1
  • 1
The Maestro
  • 659
  • 1
  • 5
  • 21

1 Answers1

0

You must not send network requests in ui (main) thread of your android application. Try to use Async Task for that

See How to fix android.os.NetworkOnMainThreadException?

Community
  • 1
  • 1
Alexey
  • 1,198
  • 1
  • 15
  • 35