java - Android HttpURLConnection 仅适用于 3g,不适用于 wlan

标签 java android httpurlconnection wifi

我的 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/

相关文章:

android - 如何检查用户输入的 URL 是否有效?

java - 如何处理 URLConnection.connectionTimeout?

java - 在 WSO2 自定义元素中使用外部库

c# - IndexOf 方法在 C#/Java 中应该返回 -1 时返回 0

java - 在非常短的时间内在 Java 中搜索非常大的 ARPA 文件

java - LinearLayout onShow 它将 ScrollView 向下移动

java - JUnit 和 Ruby 测试集成

android - 在文本字段上显示微调器而不是键盘

javascript - 如何从 webView.evaluateJavascript 回调返回值?

java - 使用java进行curl操作