2015-05-09 38 views

回答

-1

你應該提供任何你有問題的代碼。不要指望有人爲你做這份工作。

爲了讓您至少有一些提示:

您將使用IdHTTP根據您已經提到過的文檔發送PUT請求。不要忘記用REST客戶端的登錄信息添加標題「Authorization」。

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

這會阻止你的主線程(UI),所以如果你想上傳/下載,並取得進展,你必須使用一個單獨的線程 - 所以在「工作」過程中,將首先創建一個TThread類,運行上傳/下載。

現在你必須處理進展。您可以在IdHTTP組件的OnWork事件中獲取它。你會將這個狀態從線程傳遞給主線程。不要忘記正確同步此調用 - 您可以使用IdNotify。

谷歌會幫助你所有這些基本的東西。然後返回並描述任何問題。

+0

當然,我不指望完整的解決方案!你似乎也使用一個單獨的indy http客戶端組件來檢查進度。我問自己,爲什麼提供RESTClient組件不是實現上傳和下載進度的必要機制... – ramses

+0

您可以深入挖掘並在REST客戶端(請求)中使用IdHTTP - YourRESTRequest.Client.HTTPClient.Peer.GetObject作爲TIdCustomHTTP。 ..但我不知道是否有可能安全地使用它 – smooty86

+0

我還發現,其餘客戶端「提供」一個HTTP客戶端,但不是一個完全部署爲indy的。沒有任何事件可以用於例如顯示進度 – ramses

相關問題