2009-11-25 2 views
1

Я пытался найти способ загрузить видео с устройства Android в API, но я не нашел подходящего способа сделать это. Похоже, что большая часть информации, которую я нашел в Интернете, довольно устарела (большая ее часть - с прошлого года). Большинство из них используют такой метод: http://getablogger.blogspot.com/2008/01/android-how-to-post-file-to-php-server.htmlКаков предпочтительный метод для загрузки на сервер с Android?

Какой самый простой/предпочтительный способ загрузить что-то в API с помощью многостраничного POST?

+0

Если бы мой ответ был полезным, я был бы признателен, если бы вы его приняли. В противном случае, пожалуйста, дайте мне знать, как я могу помочь. – Konklone

ответ

0

У меня есть приложение для Android, которое я разрабатываю против API API чата Campfire. Этот код загружает файл через многочастного POST:

http://github.com/klondike/android-campfire/blob/master/src/com/github/klondike/java/campfire/Room.java#L175

Все, что после «dos.close()» линия связана с проверкой ответа обнаружить, был ли после успешной.

Не все, что необходимо для каждого многочастного сообщения; например, заголовок X-Requested-With специфичен для Campfire, User-Agent является необязательным, а Cookie - потому, что я должен оставаться вошедшим в систему. Кроме того, комментарий «OH MY GOD» относительно интервала, вероятно, является специфичным для Campfire ,

Я слышал, что последняя версия библиотеки HttpClient от Apache имеет более удобную встроенную многочастную поддержку, но последняя синхронизация Google, выполненная против Android, не включала эти функции, поэтому здесь я делая это вручную.

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

0

Вы можете использовать HttpClient от Apache Software Foundation. Это часть API для Android:

HttpClient httpclient = new DefaultHttpClient(); 
HttpPost httppost = new HttpPost("www.somewebpage.com/site-that-can-handle-post"); 

try { 
    MultipartEntity entity = new MultipartEntity(); 
    entity.addPart("timestamp", new StringBody("1311789946")); 
    entity.addPart("image", new FileBody(new File("/foo/bar/video.mpeg"))); 
    httppost.setEntity(entity); 
    HttpResponse response = httpclient.execute(httppost); 
} catch (Exception e) { 
    Log.v(MyActivity.TAG, "doh!", e); 
} 

Надеюсь, что это поможет. :)

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