Устаревшие DefaultHttpClient и StringBody в Android

1

Я отправляю XML файл по URL на PHP-сервер.

Вчера я сменил скомпилированныйSdkVersion с 17 до 23

compileSdkVersion 23
buildToolsVersion "23.0.2"

и после того, как я перестрою проект, он говорит мне, что метод DefaultHttpClient устарел.

Это код:

String sURL = "http://www.example.com/function?f=1000&";
String returnString;
File fileDir = new File(getFilesDir(), "job_active");
fileDir.mkdirs();
File file = new File(fileDir,filename);

try {

    HttpClient httpClient = new DefaultHttpClient();
    HttpPost httpPost = new HttpPost(sURL);


    MultipartEntityBuilder multipartEntity = MultipartEntityBuilder.create();
    //Füge die Datei zur Entity hinzu
    multipartEntity.addPart("file", new FileBody(file));
    //Füge den Dateinamen hinzu
    multipartEntity.addPart("tmp_name", new StringBody(FilewithoutExt));

    httpPost.setEntity(multipartEntity.build());

    HttpResponse response = httpClient.execute(httpPost);
    //Bekomme die Antwort vom Server zurück
    returnString = EntityUtils.toString(response.getEntity());
} catch (IOException e) {
    e.printStackTrace();
    return false;
}

Другим устаревшим методом является метод StringBody.

Я видел пример в других Threads, таких как:

URL url = new URL(urlString);
        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
        connection.setRequestMethod("POST");

Но я не могу найти способ заменить эти два метода. Можно ли использовать HttpUrlConnection и отправить файл с ним?

Я надеюсь, что это ясно, что моя проблема.

С уважением!

Теги:

2 ответа

0

Просто добавьте useLibrary 'org.apache.http.legacy' в тег android в своем файле gradle.

0

Вы можете загрузить файл с помощью HttpURLConnection.

Дополнительные сведения: http://androidexample.com/Upload_File_To_Server_-_Android_Example/index.php?view=article_discription&aid=83&aaid=106

Ещё вопросы

Сообщество Overcoder
Наверх
Меню