Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http错误416请求的范围不可满足,在Android上使用Google Drive Rest API_Android_Google Drive Api - Fatal编程技术网

Http错误416请求的范围不可满足,在Android上使用Google Drive Rest API

Http错误416请求的范围不可满足,在Android上使用Google Drive Rest API,android,google-drive-api,Android,Google Drive Api,下面是一段代码。该代码工作正常,但使用Samsung Tab 10.1的一个用户的一个实例除外 String pageToken = null; do { FileList remoteImageList = mService.files().list() .setSpaces("appDataFolder") .setPageToken(pageToken) .setQ("mimeType='image/webp

下面是一段代码。该代码工作正常,但使用Samsung Tab 10.1的一个用户的一个实例除外

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"
}
}
从代码中,我可以看到调用ExecuteMedia和DownloadTo方法时生成了错误。该方法的实现使用MediaHttpDownloader(谷歌API的一部分),实现看起来是正确的。我能想到的唯一一件事是,三星Tab 10.1设备有一个不同的谷歌API实现,这可能有一个bug


以前有人遇到过这个问题吗?

问题可能是您试图下载一个创建时没有任何内容的文件。每次尝试获取这样的文件时,都会收到416。要解决此问题,您可以使用数据更新文件。

问题可能是您试图下载一个创建时没有任何内容的文件。每次尝试获取这样的文件时,都会收到416。要解决此问题,您可以使用数据更新文件。

您是否已使用多台设备对此进行了测试?打开驱动器时是否使用浏览器?找到这个@d.datul1990谢谢你的链接。错误的原因是将数据推送到谷歌硬盘的代码。我使用android服务在同步的onStart命令中推送数据。但是,似乎有同时上传,这是在破坏驱动器中的文件。(我通过在我的测试设备上强制同时上传,重现了这个问题)。我用一个静态对象同步了上传,解决了这个问题。现在我想知道一些设备是否存在问题,并且允许多个服务实例?您是否用多个设备测试过这一点?打开驱动器时是否使用浏览器?找到这个@d.datul1990谢谢你的链接。错误的原因是将数据推送到谷歌硬盘的代码。我使用android服务在同步的onStart命令中推送数据。但是,似乎有同时上传,这是在破坏驱动器中的文件。(我通过在我的测试设备上强制同时上传,重现了这个问题)。我用一个静态对象同步了上传,解决了这个问题。现在我想知道一些设备是否存在问题,并且允许多个服务实例?还有其他原因吗?我的文件不是空的还有其他原因吗?我的文件不是空的