Я отправляю 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
и отправить файл с ним?
Я надеюсь, что это ясно, что моя проблема.
С уважением!
Просто добавьте useLibrary 'org.apache.http.legacy'
в тег android
в своем файле gradle.
Вы можете загрузить файл с помощью HttpURLConnection.
Дополнительные сведения: http://androidexample.com/Upload_File_To_Server_-_Android_Example/index.php?view=article_discription&aid=83&aaid=106