Android DefaultHttpClient,HttpPost等已废弃SDK 30

问题描述

我更新了我的应用程序,但找不到用于上传图像的新功能

    String photoBase64 = ConvertBitmapToString(selectPhotoBitmap);

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("image","data:image/png;base64," + photoBase64));
    nameValuePairs.add(new BasicNameValuePair("name",selectPhotoName));

    Thread t = new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost(config.FTP + "upload.PHP");
                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                httpclient.execute(httppost);
            } catch (Exception e) {

                e.printstacktrace();
            }
        }
    });
    t.start();

不推荐使用:

NameValuePair in org.apache.http has been deprecated
BasicNameValuePair(String,String) in BasicNameValuePair has been deprecated
DefaultHttpClient() in DefaultHttpClient has been deprecated
HttpPost(String) in HttpPost has been deprecated
UrlEncodedFormEntity in org.apache.http.client.entity has been deprecated
UrlEncodedFormEntity(List<? extends NameValuePair>) in UrlEncodedFormEntity has been deprecated
setEntity(httpentity) in httpentityEnclosingRequestBase has been deprecated
execute(HttpUriRequest) in HttpClient has been deprecated

如何用新的更改它们。

解决方法

您可以使用HttpURLConnection https://developer.android.com/reference/java/net/HttpURLConnection,或者如果您想继续使用order by add

ROW_NUMBER

在应用程序级别gradle中

将图像作为文件而不是base64发送到服务器

httpclient