谷歌云端硬盘API 416 HTTP代码响应
问题描述:
出于某种原因,以前的工作代码停止工作,并启动服务器是失败的交互过程中的HTTP客户端的日志与416谷歌云端硬盘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字节的文件,所以我认为“卡盘大小”的含义在某处发生了变化,所以它不能给出282757字节文件的33554431个字节。试图改变一个较小的值,但没有成功。
Drive.Files.Get get = drive.files().get(file.getId())
MediaHttpDownloader downloader = get.getMediaHttpDownloader()
downloader.directDownloadEnabled = false
localFile.newOutputStream()
get.executeMediaAndDownloadTo(stream)
直接下载也不起作用,它只是下载“0”字节。 有谁知道如何解决这个问题?
答
它似乎是使用Firefox时的Web界面。它在某些情况下上传“空”文件。
https://productforums.google.com/forum/#!topic/drive/S03wEknc75g;context-place=forum/drive
答
416 Range Not Satisfiable 错误表示服务器无法提供所请求的范围。 最有可能的原因是该文档不包含这样的范围, 或范围标题值虽然在语法上正确,但不是 是合理的。
一个可以从这个forum提供的决议是:
添加“接受范围:无”到我们的响应头。
我想试试,但MDN中指出,接受-范围是响应头,即应在服务器端设置https://developer.mozilla.org/ru/docs/的Web/HTTP /头/接受,范围 – Valya