2015-05-09 2 views
1

используя клиент xe7 rest, я могу пройти аутентификацию и получить всю информацию, такую ​​как список файлов, информацию об учетной записи и т. Д. как я могу загрузить и скачать файлы с индикацией прогресса? для загрузки будет очень полезно, если есть некоторые примеры для небольшого файла с помощью /files_put (максимальных размера 150МБ файла) и большего, то с помощью /chunked_upload от Dropbox APIdelphi xe7 загружать/загружать файл с Dropbox с помощью клиента rest и показывать прогресс

спасибо!

ответ

-1

Вы должны указать любой код, с которым у вас возникли проблемы. Не ожидайте, что кто-то сделает эту работу за вас.

Чтобы дать вам хоть какую-то подсказку:

Вы послали запрос PUT с помощью IdHTTP согласно документации вы уже упоминали. Не забудьте добавить заголовок «Авторизация» с вашей регистрационной информацией от клиента REST.

IdHTTP.Put('https://api-...', FFileStream, FResponseStream); 

Это будет блокировать ваш основной поток (UI), так что если вы хотите загрузить/загрузить и показать прогресс, вы должны использовать отдельный поток - так сначала создать TThread, в процедуре «Работа», вы запустить загрузку/загрузку.

Теперь вам нужно справиться с прогрессом. Вы можете получить это в событии OnWork компонента IdHTTP. Вы передадите этот статус из потока в основной поток. Не забудьте правильно синхронизировать этот вызов - для этого вы можете использовать IdNotify.

Google поможет вам со всеми этими основными вещами. Затем возвращайтесь и описывайте любую проблему.

+0

уверен, я не ожидаю полного решения! кажется, что вы также используете отдельный клиентский компонент indy для проверки прогресса. Я спрашиваю себя, почему компонент RESTClient не является необходимым механизмом для реализации прогресса для загрузки и скачивания ... – ramses

+0

Вы можете копать глубже и использовать IdHTTP внутри клиента REST (запрос) - YourRESTRequest.Client.HTTPClient.Peer.GetObject как TIdCustomHTTP. .. но я не знаю, можно ли безопасно использовать его – smooty86

+0

Я также обнаружил, что клиент-клиент «предлагает» http-клиент, но не полностью развернут как indy. Нет событий, которые можно использовать, например, show progress – ramses

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