我正在使用以下URL查询图形API:
https://graph.microsoft.com/v1.0/sites/{siteID}/drives/{driveID}/root/children
这为我提供了webURL
"https://MY DOMAIN.sharepoint.com/sites/{SITE}/{FILENAME}.url
与下载.url
文件相比,有什么方法可以获取快捷方式项指向的值吗?
我认为Get url address from url file回答了我一半的问题,但是,我无法将URL的内容作为File
类型的对象来读取。
我正在获取每个快速链接,并通过ReadAsStringAsync
public static async Task<List<QuickLinkViewModel>> GetQuickLinksAsync (dynamic quicklinksJson)
{
List<QuickLinkViewModel> quickLinks = new List<QuickLinkViewModel>();
var quickLink = quicklinksJson.value;
string title;
HttpClient client = new HttpClient();
byte[] reply;
foreach (var q in quickLink)
{
reply = await client.GetByteArrayAsync(q.webUrl);
title = q.name;
title = System.IO.Path.GetFileNameWithoutExtension(title);
quickLinks.Add(new QuickLinkViewModel
{
Title = title,
webUrl = q.webUrl
});
}
return quickLinks;
}
运行此命令时出现错误:
最佳匹配的重载方法 'System.Net.Http.HttpClient.GetByteArrayAsync(string)'有一些 无效的参数
答案 0 :(得分:0)
.url
文件。因此,Microsoft Graph的查询结果中的webUrl格式不同于其他文件。其他文件可以通过此webUrl预览。 .url
文件将直接通过webUrl下载。
您可以下载它并使用编辑工具将其打开,以查看快捷方式项目指向的值。
.url
文件的内容:
[InternetShortcut]
URL={the value that the shortcut item points to}
更新:
如果要在代码中获取.url
文件的内容,则需要调用另一个Graph端点:GET /drives/{drive-id}/items/{item-id}/content
。请参阅参考文献here。使用client.DownloadString
读取C#中的内容。
这是一个简单的示例(请注意,我没有在此处执行授权过程,为方便起见,只需放置Authorization
牧民):