Google drive api 使用WebContent链接下载文件

Google drive api 使用WebContent链接下载文件,google-drive-api,Google Drive Api,我一直在尝试使用Mediahttpdownloader下载该文件,并传递该文件的WebContent链接。然而,它总是在401未经授权的情况下失败 MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport, drive.getRequestFactory().getInitializer()); downloader.download(new GenericUrl(file.getWebContentLink()

我一直在尝试使用Mediahttpdownloader下载该文件,并传递该文件的WebContent链接。然而,它总是在401未经授权的情况下失败

MediaHttpDownloader downloader = new MediaHttpDownloader(httpTransport, drive.getRequestFactory().getInitializer());
downloader.download(new GenericUrl(file.getWebContentLink()), out);
我已尝试添加授权标头,但仍然失败:

    HttpHeaders requestHeaders = new HttpHeaders();     
            requestHeaders.setAuthorization("Bearer "+ credential.getAccessToken());
downloader.download(new GenericUrl(file.getWebContentLink(), requestHeaders,  out);
我还尝试将访问令牌添加到URL,但在401 Unathorzied的情况下仍然失败

downloader.download(new GenericUrl(file.getWebContentLink()+"?access_token=ACCESS_TOKEN"), out);
下面是确切的错误:

401 Unauthorized
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
401未经授权
未经授权
未经授权
错误401

知道如何在Mediahttpdownloader类中使用Webcontent链接吗?

中的驱动器服务有问题。drive.getRequestFactory().getInitializer());你没有经过身份验证。上传就可以了。如果我将WebContentLink+?access_token=token放在浏览器中,它可以正常工作,但在Mediahttpdownloader类的代码中不起作用。下面是它的初始化方式:
drive=new drive.Builder(httpTransport,JSON_FACTORY,credential).setApplicationName(APPLICATION_NAME).build();}和相同的驱动器服务在我使用时可以正常工作:
drive.files().get(uploadedFile.getId()).executeMediaAndDownloadTo(out)下载中的驱动器服务不正常。您是否使用相同的驱动器服务变量?是的,它是相同的。使用文件ExecuteMedia和DownloadTo函数
drive.files().get(uploadedFile.getId()).ExecuteMedia和DownloadTo(out)时可以下载此外,web内容链接应适用于文档中提到的未经授权的访问:如果您希望允许未经授权的用户直接在web浏览器中而不是通过API查看文件,请使用WebContent链接。中的驱动器服务有问题。drive.getRequestFactory().getInitializer());你没有经过身份验证。上传就可以了。如果我将WebContentLink+?access_token=token放在浏览器中,它可以正常工作,但在Mediahttpdownloader类的代码中不起作用。下面是它的初始化方式:
drive=new drive.Builder(httpTransport,JSON_FACTORY,credential).setApplicationName(APPLICATION_NAME).build();}和相同的驱动器服务在我使用时可以正常工作:
drive.files().get(uploadedFile.getId()).executeMediaAndDownloadTo(out)下载中的驱动器服务不正常。您是否使用相同的驱动器服务变量?是的,它是相同的。使用文件ExecuteMedia和DownloadTo函数
drive.files().get(uploadedFile.getId()).ExecuteMedia和DownloadTo(out)时可以下载此外,web内容链接应适用于文档中提到的未经授权的访问:如果您希望允许未经授权的用户直接在web浏览器中而不是通过API查看文件,请使用WebContent链接。