Sto aggiornando un'applicazione all'API 23 in cui org.apache.http
è deprecato.org.apache.http.entity.FileEntity è obsoleto in Android 6 (Marshmallow)
Il mio codice (deprecato) corrente si presenta così:
HttpClient httpClient = new DefaultHttpClient();
File file = new File(attr.Value);
String url = server_url;
HttpPost request = new HttpPost(url);
FileEntity fileEntity = new FileEntity(file, "image/png");
request.setEntity(fileEntity);
HttpResponse response = httpClient.execute(request);
String output = getContent(response.getEntity().getContent());
ho trovato alcuni suggerimenti di come questo dovrebbe essere fatto utilizzando HttpURLConnection
, ma sono tutti molto più complesso quindi la soluzione attuale (che non può essere usato più). Sto parlando di molte righe di codice per l'esecuzione della stessa funzionalità di cui sopra.
Esempi sono: this page e this page
Qualcuno ha una buona soluzione più breve solida per questo?
Vedere https://github.com/square/okhttp/wiki/Recipes#posting-a-file e https://github.com/square/okhttp/wiki/Recipes#posting-a-multipart-request per Ricette OkHttp di potenziale rilevanza. – CommonsWare
@CommonsWare, grazie per il link. Ho letto su OkHttp e ho deciso di usarlo nella mia app. Mi prende cura di molti problemi ed è abbastanza facile da usare. Grazie per il consiglio. Scrivi questo come risposta e ti segnerò. – Ambran
Un'altra opzione da consultare se si desidera utilizzare Volley http://stackoverflow.com/questions/32240177/working-post-multipart-request-with-volley-and-without-httpentity – BNK