这个问题是因为在Android 6.0及以上版本中,'HttpClient'已被废弃,需要使用'HttpURLConnection'或'OkHttp'等替代方案来进行网络请求。

以下是使用'HttpURLConnection'替代的方法:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(String... urls) {
        String urlDisplay = urls[0];
        Bitmap bitmap = null;
        try {
            URL url = new URL(urlDisplay);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream input = connection.getInputStream();
            bitmap = BitmapFactory.decodeStream(input);
        } catch (Exception e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return bitmap;
    }
}

在这个替代方案中,我们使用'HttpURLConnection'来进行网络请求,并使用'BitmapFactory'来解析返回的数据流,最终得到'Bitmap'图片。

另外,我们也可以使用'OkHttp'来进行网络请求,以下是使用'OkHttp'的方法:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import java.io.IOException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

    @Override
    protected Bitmap doInBackground(String... urls) {
        String urlDisplay = urls[0];
        Bitmap bitmap = null;
        try {
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url(urlDisplay)
                    .build();
            Response response = client.newCall(request).execute();
            if (response.isSuccessful()) {
                bitmap = BitmapFactory.decodeStream(response.body().byteStream());
            }
        } catch (IOException e) {
            Log.e("Error", e.getMessage());
            e.printStackTrace();
        }
        return bitmap;
    }
}

在这个替代方案中,我们使用'OkHttp'来进行网络请求,并使用'BitmapFactory'来解析返回的数据流,最终得到'Bitmap'图片。

Android 6.0+ HttpClient 弃用解决方法:使用 HttpURLConnection 或 OkHttp

原文地址: https://www.cveoy.top/t/topic/odoa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录