Google Drive API使用416 HTTP代码进行响应

时间:2017-09-11 21:46:24

标签: java http google-drive-api

由于某种原因,以前工作的代码停止工作,服务器开始响应416。

以下是失败交互期间HTTP客户端的日志:

-------------- REQUEST  --------------
GET https://www.googleapis.com/drive/v3/files/0B02Nopv3SQOvOVNKaDIwTEZ3MHd?alt=media
Accept-Encoding: gzip
Authorization: <Not Logged>
Range: bytes=0-33554431
User-Agent: My app Google-API-Java-Client Google-HTTP-Java-Client/1.22.0 (gzip)

-------------- RESPONSE --------------
HTTP/1.1 416 Requested range not satisfiable
Alt-Svc: quic=":443"; ma=2592000; v="39,38,37,35"
Server: UploadServer
Cache-Control: private, max-age=0
Content-Range: bytes */0
X-GUploader-UploadID: AEnB2UqBx9B09Lnr8tG761gdoz3DkhHSNO_OzHh1LkU6B2908v17rnBGQZSNW4ZVTjbRdFtvPWWIqZGdtSrTo6ZWN7YW9nxf6d
Vary: X-Origin
Vary: Origin
Expires: Mon, 11 Sep 2017 15:23:20 GMT
Content-Length: 225
Date: Mon, 11 Sep 2017 15:23:20 GMT
Content-Type: application/json; charset=UTF-8

我试图下载一个大约200000字节的文件,所以我想到" chuck size"在某处更改,因此它无法为282177字节文件提供33554431个字节。尝试将其更改为较小的值,但没有成功。

Drive.Files.Get get = drive.files().get(file.getId())

MediaHttpDownloader downloader = get.getMediaHttpDownloader()

downloader.directDownloadEnabled = false

localFile.newOutputStream()
get.executeMediaAndDownloadTo(stream)

直接下载也不起作用,它只是下载" 0"字节。 有谁知道如何克服这个问题?

2 个答案:

答案 0 :(得分:0)

  

416 Range Not Satisfiable   错误表示服务器无法提供请求的范围。该   最可能的原因是该文件不包含此类范围,   或者Range标头值虽然在语法上是正确的,但并不是   有道理。

forum可能提供的解决方案之一是:

  

添加"接受范围:无"到我们的回复标题。

答案 1 :(得分:0)

使用Firefox时似乎是一个Web界面。它在某些情况下上传了“空”文件。

https://productforums.google.com/forum/#!topic/drive/S03wEknc75g;context-place=forum/drive