Я пытаюсь загрузить содержимое файла, хранящегося на одном диске, с помощью API MS Graph. Я смог подключиться и аутентифицировать себя, также я могу просматривать список файлов и папок, могу загружать файлы. Когда я пытаюсь загрузить файл, указав его идентификатор, он выдает ниже исключения
An invalid request URI was provided. The request URI must either be an absolute URI or BaseAddress must be set.
Это исключение выдается в строке
var downloadedItem = await graphClient
.Me
.Drive
.Items[itemId]
.Content
.Request()
.GetAsync();
То, что я думаю, правильно, потому что всякий раз, когда я пытаюсь отправить тот же результат из графического обозревателя, он работает и дает желаемый результат (поток / предварительный просмотр)
https://graph.microsoft.com/v1.0/me/drive/items/{itemid}/content
что я делаю не так? Ниже мой код -
public static async Task<Dictionary<string,Stream>> DriveDownloadAsync(string itemId)
{
Dictionary<string,Stream> files = null;
if (!string.IsNullOrEmpty(itemId))
{
files = new Dictionary<string, Stream>();
var graphClient = GetAuthenticatedClient();
var target = await graphClient.Me.Drive.Items[itemId].Request().GetAsync();
if (target.File != null)
{
var downloadedItem = await graphClient.Me.Drive.Items[itemId].Content.Request()
.GetAsync();
files.Add("NewDownload",downloadedItem);
//return files;
}
else if (target.Folder != null)
{
try
{
var downloadItems = await graphClient.Me.Drive.Items[itemId].Children.Request()
.GetAsync();
foreach (var item in downloadItems)
{
var itemStream = await graphClient.Me.Drive.Items[item.Id].Content.Request().GetAsync();
files.Add(item.Name, itemStream);
}
}
catch (Exception ex)
{
throw ex;
}
//return files;
}
}
else
return null;
return files;
}
Заранее спасибо!