无需浏览器即可调用网页而无需回复

时间:2016-03-18 14:30:45

标签: java android django

我想从我的Android应用程序调用一个url,而无需打开Web浏览器并且没有从网页接收任何数据。 我的想法是我在我正在调用的url中传递一个id,当服务器收到请求时,它将正确处理id。 我试图先发布它但我无法接收POST请求(我正在使用Django)并且无法找出原因,并且已经描述了问题here,但没有得到答案! 所以我正在尝试跟this answerthis类似的GET请求,但我收到此错误:

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) 

我认为这是因为网页没有返回任何东西!

我只需要将网址中的ID发送到网页,而不会向Android应用返回任何值。

谢谢

1 个答案:

答案 0 :(得分:0)

您不得在Android应用程序的ui(主)线程中发送网络请求。尝试使用Async Task作为

请参阅How to fix android.os.NetworkOnMainThreadException?