我正在尝试使用Java中的REST API下载文件的主要版本和次要版本。我只能下载特定文件的最新版本,当我尝试下载该文件的其他版本时,我收到500内部服务器错误。
获取文件版本的URL会正确返回文件的所有版本。当我尝试获取不同版本的内容时,我得到500内部服务器错误。
我用来获取文件的不同版本的URL是
“的 _api /网络/ GetFileByServerRelativeUrl( '%s' 的)/版本”。
我用来获取文件内容的网址是
“的 _api /网络/ GetFileByServerRelativeUrl( '%s' 的)/ $值”。
该文件的最新版本的URL语法是
“HTTPS:// tenant_name .sharepoint.com / FOLDER_NAME / FILE_NAME ”。
该文件版本的URL语法是
“HTTPS:// tenant_name .sharepoint.com / _vti_history / VERSION_ID / FOLDER_NAME / FILE_NAME ”。
后一种语法(即文件版本的URL语法)有问题吗?
任何人都可以帮帮我。
答案 0 :(得分:0)
似乎不支持在端点/_api/web/GetFileByServerRelativeUrl
中为文件版本指定url,因为它除了实际文件的服务器相对URL。
由于提供的文件版本的URL没有任何问题,您可以考虑采用不同的方法来下载它。不要将REST端点用于文件内容/_api/web/GetFileByServerRelativeUrl('%s')/$value
,而是考虑使用绝对 url下载文件,如下例所示:
C#示例
using (var client = new HttpClient())
{
var targetPath = @"c:\downloads";
var sourceFileUrl = String.Format("{0}/_vti_history/512/Documents/SharePoint User Guide.docx",webUri);
var response = client.GetAsync(sourceFileUrl).Result;
var targetFileName = targetPath + System.IO.Path.GetFileName(sourceFileUrl);
System.IO.File.WriteAllBytes(targetFileName, response.Content.ReadAsByteArrayAsync().Result);
}
答案 1 :(得分:0)
网址应为:
https://sharepoint-site.com/sites/Subsite/_vti_history/version_id/Documents/SharePoint User Guide.docx