我通過URL
將XML
文件發送到PHP服務器。Android中已棄用DefaultHttpClient和StringBody
昨天我改變了compiledSdkVersion從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
方法。
我見過一個例子,其它線程,如:
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
但我不能找到一種方法來替代這兩個方法。我可以使用HttpUrlConnection
併發送文件嗎?
我希望很清楚我的問題是什麼。
親切的問候!