Android应用 - 获取网页内容错误

时间:2015-06-13 16:57:49

标签: android

目前这是我获取HTML代码内容的代码(请注意,它从第45行开始):

public String refresh() {
    try {
        String link = "http://amethystmc.com/staff/android/serverStatus_essential.php?auth=android420";

        URL url = new URL(link);
        URLConnection c = url.openConnection();
        InputStream r = c.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(r));

        StringBuilder sb = new StringBuilder();
        String line = null;

        // Read Server Response
        while ((line = reader.readLine()) != null) {
            sb.append(line);
            break;
        }
        return sb.toString();
    } catch (Exception ex) {
        String stacktrace = "";

        for (StackTraceElement string : ex.getStackTrace()) {
            stacktrace += string + "\n";
        }
        Log.e("internet died", stacktrace);
        return new String("Exception: " + stacktrace);
    }
}

这是在控制台中抛出的错误:

06-13 17:45:51.980  19907-19907/? E/internet died. android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1166)
java.net.InetAddress.lookupHostByName(InetAddress.java:385)
java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
java.net.InetAddress.getAllByName(InetAddress.java:214)
com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179)
me.lukewizzy.servers.MainActivity.refresh(MainActivity.java:51)
me.lukewizzy.servers.MainActivity.onCreate(MainActivity.java:25)
android.app.Activity.performCreate(Activity.java:5458)
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2470)
android.app.ActivityThread.access$900(ActivityThread.java:174)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1307)
android.os.Handler.dispatchMessage(Handler.java:102)
android.os.Looper.loop(Looper.java:146)
android.app.ActivityThread.main(ActivityThread.java:5593)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
dalvik.system.NativeStart.main(Native Method)

这是清单的内容:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
    android:name="me.lukewizzy.servers.MainActivity"
    android:label="@string/app_name">

    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>
</application>

经过研究后,我很确定我已经给予了正确的权限,所以我不知道我哪里出错了。我非常感谢任何可以提供帮助的人。

0 个答案:

没有答案