1

Ги парни!Android: Что такое лучшая HTTP-библиотека для файлов?

Я работаю над проектом android (java) с другим парнем, работающим на server-side(php). В моей заявке мне нужно позвонить POST и GET методам, чтобы upload files to server, download files, send Strings, byte[] array etc.

Мой вопрос: Что такое лучшая библиотека для использования в моем случае (я думаю, что мои файлы не будут превышать 3mb)

Я новичок в Android, так что я пытался до сих пор:

1 .Android Asynchronous Http Client (com.loopj.android:android-async-http:xxx) -мы отказался от этого, потому что это не из "доверенного" источника

2.AsyncTask+HttpClient+HttpPost -Мы отказался от этого слишком

3.Volley library -лучших до сих пор (для строк, запрос изображения), но это требует дополнительных библиотек для отправки изображений на сервер (org.apache.httpcomponents:httpmime:4.5) -I следил за тем, примеры из here но у меня есть исключения, ошибки, ошибки библиотек (дубликатов) и никогда не удалось решить один без другого. -так я дал на это слишком

My question posted for volley libraryhere

4. Сейчас я думаю об использовании Retrofit, но не знаю, что это соответствует моим потребностям: -Send строки и все типы примитивных данных -send image/images to server (вместе с Api key) -нагрузить изображение/изображения с сервера

Скажите, если я где-то ошибаюсь или пропустил что-то, работая с указанными выше библиотеками. Мне удалось отправить простые данные со всеми этими, но мне не удалось отправить Files (кроме библиотеки loopj).

Как вы думаете, вернусь ли я к Volley, или начнем читать о Retrofit? Volley кажется наиболее гибким, но не для uploading files.

Любые рекомендации или советы приветствуются! Заранее спасибо!

Update: Я нашел возможное решение моей проблемы: -I конвертировать мой файл/изображение в byte array и encode его к base64 string -I отправить строку на сервер в качестве основного StringRequest с HashMap<String,String> (с использованием Библиотека волейбола от разработчиков Google) -Сервер расшифровывает строку a сохраняет файл

+0

Пожалуйста, загрузите фрагмент кода, что и упомянутый в разделе Обновления Tanx заранее – Adiii

+0

@Adil Вы можете проверить этот вопрос и следовать ответу для кодирования и декодирования в Base64 http://stackoverflow.com/questions/7360403/base-64-encode-and-decode-example-code, и это для отправки данных с помощью Volley http://stackoverflow.com/questions/36194517/android-send-image-encoded-to-base64-using-volley –

+0

Tanx dear @ Cristian.R – Adiii

ответ

2

Я думаю, что очень хорошо для вас будет AndroidAsync. Вы можете узнать больше об этом на их репозитории GitHub здесь: https://github.com/koush/AndroidAsync

В качестве примера для вас о том, как загрузить файлы на сервер:

AsyncHttpPost post = new AsyncHttpPost("http://myservercom/postform.html"); 
MultipartFormDataBody body = new MultipartFormDataBody(); 
body.addFilePart("my-file", new File("/path/to/file.txt"); 
body.addStringPart("foo", "bar"); 
post.setBody(body); 
AsyncHttpClient.getDefaultInstance().execute(post, new StringCallback() { 
    @Override 
    public void onCompleted(Exception e, AsyncHttpResponse source, String result) { 
     if (e != null) { 
      ex.printStackTrace(); 
      return; 
     } 
     System.out.println("Server says: " + result); 
    } 
}); 

Существует также NanoHTTPD, которые вы можете найти здесь: https://github.com/NanoHttpd/nanohttpd

Надеюсь, это поможет вам.

+0

Большое спасибо за ваш ответ, я не знал об этом, но я не могу принять ваш ответ как наиболее полезный, потому что это не из надежного источника (циклы, о которых идет речь, лучше, чем оба) , Мой руководитель проекта никогда не позволит мне использовать что-то подобное. Я обновил свой вопрос, если вы хотите увидеть возможное/временное решение. –

0

Вы должны попробовать HttpURLConnection его действительно легко отправить данные на сервер.

https://developer.android.com/training/basics/network-ops/connecting.html

+1

Вместо * вы должны попробовать *, почему бы вам не добавить небольшой пример и предоставить ссылку для ссылки. Это было бы очень полезно! –

Смежные вопросы