0
下面是一段代碼。代碼正常,除了在採用三星標籤10.1Http錯誤416請求的範圍不能滿足,在Android上使用Google Drive Rest API
String pageToken = null;
do {
FileList remoteImageList = mService.files().list()
.setSpaces("appDataFolder")
.setPageToken(pageToken)
.setQ("mimeType='image/webp'")
.setPageSize(10)
.setFields("nextPageToken, files(id, name)")
.execute();
for (com.google.api.services.drive.model.File file : remoteImageList.getFiles()) {
File newLocalImage = new File(getExternalFilesDir(null), file.getName());
FileOutputStream fos = new FileOutputStream(newLocalImage);
mService.files()
.get(file.getId())
.executeMediaAndDownloadTo(fos);
fos.close();
}
pageToken = remoteImageList.getNextPageToken();
} while (pageToken != null);
用於所述用戶的一個一個實例下面是在IOException的該消息。
416 Requested range not satisfiable
{
"error": {
"errors": [
{
"domain": "global",
"reason": "requestedRangeNotSatisfiable",
"message": "Request range not satisfiable"
}
],
"code": 416,
"message": "Request range not satisfiable"
}
}
從代碼中,我可以看到調用executeMediaAndDownloadTo方法時產生的錯誤。該方法的實現使用MediaHttpDownloader(Google API的一部分),並且實現看起來正確。我能想到的唯一的事情是三星Tab 10.1設備有不同的谷歌API實現,這可能有一個錯誤?
有沒有人遇到過這個問題?
您是否使用多個設備測試了這個功能?打開驅動器時是否使用瀏覽器?發現此[HTTP錯誤416](https://bugs.chromium.org/p/chromium/issues/detail?id=68298) –
@ d.datul1990感謝您的鏈接。導致錯誤的原因是代碼將數據推送到Google雲端硬盤。我正在使用android服務在同步的onStartCommand中推送數據。但似乎有同時上傳,它正在破壞驅動器中的文件。 (我通過在我的測試設備上強制同時上傳來重現該問題)。我將上傳與一個靜態對象同步並解決了問題。現在我想知道一些設備是否存在問題並允許多個服務實例? –