Android Asynchronous Http Client似乎永远不会回电话

Nik*_*cke 0 android asynchttpclient

我正在尝试编写一个使用com.loopj.android.http.AsyncHttpClient的Android应用程序.虽然几年前我写了一个Android应用程序,但我很生疏,所以请对我温柔!

在我的应用程序中,我做了一个get,并且没有调用任何回调虚拟方法.为了简化并确保它不是我的应用程序,我基于SDK附带的SupportAppNavigation项目创建了一个新项目.我修改了onCreate代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Log.i("com.trumphurst", "Creating AsyncHttpClient");
    AsyncHttpClient client = new AsyncHttpClient();
    client.setTimeout(5000);
    Log.i("com.trumphurst", "Getting www.google.com");
    client.get("http://www.google.com", new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(String response) {
            Log.i("com.trumphurst", "Success");
        }
        @Override
        public void onFailure(Throwable error, String content) {
            Log.i("com.trumphurst", "Failure");
        }
    });
    setListAdapter(new SampleAdapter(querySampleActivities()));
}
Run Code Online (Sandbox Code Playgroud)

(请注意,这是我对SDK附带的示例应用程序所做的唯一代码更改.)

我在调试器下启动了应用程序,并监视了logcat输出.我看到"Creating AsyncHttpClient"和"Getting www.google.com",然后什么也没看到.

我已经为清单添加了一些权限 - 它现在开始了:

<manifest android:versionCode="1"
    android:versionName="1"
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.support.appnavigation">

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

<application android:label="@string/app_name">
    <activity android:name=".app.AppNavHomeActivity"
            android:label="@string/app_nav_home_label">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

显然,我一定是做错了什么 - 有人能说得对吗?

Bor*_*rys 5

我想你忘记了AndroidManifest文件中的添加权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

在此处阅读有关Manifest文件的更多信息.

更新: 这是来自loopj github显示文件的示例

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.loopj.android.http"
    android:versionName="1.4.3"
    android:versionCode="1">
    <application
        android:name="android_async_http">
    </application>
    <uses-sdk android:minSdkVersion="3" />
    <uses-permission android:name="android.permission.INTERNET" />
</manifest> 
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看INTERNET权限.