Простой запрос HTTP на Android, не знаю, почему получить ошибку - PullRequest
0 голосов
/ 21 марта 2012

Это простой запрос get

, и я обнаружил, что исключение вызвано

"HttpResponse response = client.execute(request);"

. Я не знаю почему, потому что оно скопировано из примера.

Я пробовал другой URL-адрес и все еще получаю исключение

, если я распечатываю исключение, я получу исключение нулевого указателя

, теперь я не знаю, как найтииз проблемы

кто-нибудь знает, в чем причина этой проблемы?

вот видео ссылка для этой проблемы -

public void onClick(View view) {
    String url = "http://www.google.com";
    try {
        HttpClient client = new DefaultHttpClient();
        HttpGet request = new HttpGet(url);
        HttpResponse response = client.execute(request);
    } catch (Exception e) {
        //Log.v("cc",e.getMessage());
        Log.v("dd", "error");
    }
}

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="so.lab4"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET"/> 
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".Lab4Activity"
            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>

</manifest>

1 Ответ

0 голосов
/ 21 марта 2012

Слишком плохо, чтобы установить HTTP-соединение в потоке событий!

Вы должны выполнять эту работу в рабочем потоке.Если нет, вы приостанавливаете поток событий на обработку событий графического интерфейса, и если поток удерживается более 5 секунд, он выдаст замечательную ошибку ANR (AKA Application Not Responding).

...