我的 Android 应用程序遇到了这个奇怪的问题。我已经设置了一个 AsyncTaskLoader 来从 api 获取数据到我的应用程序,并解析和显示数据。当应用程序在 3g 模式下运行时,这确实有效。但是,当我切换到 WLAN 时,同样不起作用。在某些情况下,需要很长时间(大约5分钟,这是一个很长的时间)才能连接。我已将其范围缩小到以下代码段。
URL url = new URL("http://example_site.com");
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
Log.d("Connection", "Set Up Complete");
urlConnection.connect(); //This is the portion that I have narrowd down to.
Log.d("Connection", "connected");
InputStream inputStream = urlConnection.getInputStream();
StringBuffer buffer = new StringBuffer();
此特定问题的原因是什么?如何解决?我的最低 sdk 版本是 15,目标是 24。
编辑:-这是我在 list 中授予的权限,以防万一。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="example.com.testapp">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
..
</manifest>
最佳答案
您的 wifi 连接可能有问题,但总的来说尝试使用 OKHttp
库而不是 HTTPUrlConnection
关于java - Android HttpURLConnection 仅适用于 3g,不适用于 wlan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40714965/