Uaktualniam aplikację do interfejsu API 23, gdzie org.apache.http
jest przestarzałe.org.apache.http.entity.FileEntity jest przestarzałe w systemie Android 6 (Marshmallow)
Mój obecny (przestarzałe) kod wygląda następująco:
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());
Znalazłem kilka wskazówek, jak należy to zrobić za pomocą HttpURLConnection
, ale wszystkie one są o wiele bardziej skomplikowane następnie obecne rozwiązanie (które nie mogą być już więcej użytym). Mówię o wielu liniach kodu do wykonywania tej samej funkcjonalności, co powyżej.
Przykładami są: this page i this page
Czy ktoś ma solidne krótszy rozwiązanie dla tego?
Zobacz https://github.com/square/okhttp/wiki/Recipes#posting-a-file i https://github.com/square/okhttp/wiki/Recipes#posting-a-multipart-request for Receptury OKHttp o potencjalnym znaczeniu. – CommonsWare
@CommonsWare, dzięki za link. Czytałem o OkHttp i zdecydowałem się go użyć w mojej aplikacji. Dba o wiele problemów i jest dość łatwy w użyciu. Dzięki za wskazówkę. Napisz to jako odpowiedź, a ja cię oznam. – Ambran
Inna opcja, aby odnieść się, jeśli chcesz użyć Volley http://stackoverflow.com/questions/32240177/working-post-multipart-request-with-volley-and-without-httpentity – BNK