Android 无法使用 Volley 库访问 URL

Posted

技术标签:

【中文标题】Android 无法使用 Volley 库访问 URL【英文标题】:Android can't reach URL using Volley library 【发布时间】:2017-10-18 15:22:45 【问题描述】:

您好,我编写应用程序时遇到了很多问题,但这真的很奇怪。 通过 phpmysql 的所有连接都运行良好。今天我一切正常,但突然我无法访问 URL。

这里是日志:

05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie I/System.out: AsyncTask #8 calls detatch()
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err: org.apache.http.conn.HttpHostConnectException: Connection to http://192.168.1.20 refused
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:248)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:172)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:130)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.client.DefaultRequestDirector.executeOriginal(DefaultRequestDirector.java:1337)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:705)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:579)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:503)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:481)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at com.example.dawid.logowanie.JSONParser.makeHttpRequest(JSONParser.java:51)
05-18 19:06:00.310 21093-21353/com.example.dawid.logowanie W/System.err:     at com.example.dawid.logowanie.AddBookActivity$CreateNewProduct.doInBackground(AddBookActivity.java:197)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at com.example.dawid.logowanie.AddBookActivity$CreateNewProduct.doInBackground(AddBookActivity.java:156)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:295)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err:     at java.lang.Thread.run(Thread.java:818)
05-18 19:06:00.320 21093-21353/com.example.dawid.logowanie W/System.err: Caused by: java.net.ConnectException: failed to connect to /192.168.1.20 (port 80): connect failed: ETIMEDOUT (Connection timed out)
05-18 19:06:00.330 21093-21353/com.example.dawid.logowanie W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:124)
05-18 19:06:00.330 21093-21353/com.example.dawid.logowanie W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
05-18 19:06:00.330 21093-21353/com.example.dawid.logowanie W/System.err:     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:452)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at java.net.Socket.connect(Socket.java:884)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:193)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:    ... 16 more
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err: Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at libcore.io.Posix.connect(Native Method)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:     at libcore.io.IoBridge.connect(IoBridge.java:122)
05-18 19:06:00.340 21093-21353/com.example.dawid.logowanie W/System.err:    ... 21 more

在其他情况下,pDialog 显示我等待和等待,但一无所获:

05-18 19:10:05.850 27036-27036/com.example.dawid.logowanie E/RegisterActivity: Blad Rejestracji: null
05-18 19:10:05.900 27036-27036/com.example.dawid.logowanie D/ViewRootImpl: #3 mView = null
05-18 19:10:05.920 27036-27036/com.example.dawid.logowanie D/Volley: [1] Request.finish: 7625 ms: [ ] http://192.168.1.20/android_login_api/Check.php 0x676929da NORMAL 1
05-18 19:10:05.920 27036-27036/com.example.dawid.logowanie D/ViewRootImpl: #1 mView = android.widget.LinearLayout4c07063 V.E...... ......I. 0,0-0,0 #102039d android:id/toast_layout_root
05-18 19:10:05.930 27036-27036/com.example.dawid.logowanie E/ViewRootImpl: sendUserActionEvent() mView == null

就像我之前说的,一切正常,但突然停止了。我重启了很多次手机,换了手机也没用。我确实使缓存无效/重新启动,但仍然有问题。

【问题讨论】:

检查来自邮递员或发帖人的相同请求,看看ip是否可以访问。 【参考方案1】:

解决了!这是因为我的家庭wifi网络。我在另一部手机上打开热点并连接我的笔记本电脑和手机进行测试和工作。我仍然不明白我家的 wifi 上的所有东西是怎么早点工作的,然后突然停止了。

有人知道这怎么可能吗?

【讨论】:

以上是关于Android 无法使用 Volley 库访问 URL的主要内容,如果未能解决你的问题,请参考以下文章

将 Android volley 导入 Android Studio

关于LocalHost错误的Android Volley库

如何使用 Gradle 替换 Android Volley 库?

如何在 Android 中使用 Volley 库进行肥皂发布请求

android网络请求库volley方法详解

Android Volley框架的使用