簡體   English   中英

如何在 c# Microsoft graph api 請求中獲得響應 header

[英]How to get response header in c# Microsoft graph api request

我正在嘗試使用 Microsoft graph API 在 c# .net 內核中進行文件復制操作。 這是一個異步操作,通過文檔,它說它在響應 header中返回一個位置來檢查操作的狀態,現在問題是我需要它的響應 header 以便我可以檢查文件復制操作的狀態,但是每個當我將'null'作為值時,我嘗試了以下代碼,

DriveItem response = await graphClient.Sites[siteId].Drive.Items[itemId]
                           .Copy(fileName, parentReference)
                           .Request()
                           .PostAsync();

driveItem 返回 null 但我認為至少它應該返回額外的數據承載響應狀態和位置。

當我使用在線圖形 api時,它可以正常返回響應和位置,但它不適用於圖形客戶端服務。

顯然這是msgraph-sdk-dotnet的問題,至少它可以在3.8.0版本中重現,在反序列化 HTTP 響應時發生錯誤。 將其報告為引用存儲庫中的錯誤可能會更有益。

同時,您可以考慮構造一個Copy a DriveItem端點的請求並處理響應(包括提取Location標頭),如下所示:

var message = graphClient.Sites[siteId].Drive.Items[itemId]
                .Copy(fileName, parentReference)
                .Request()
                .GetHttpRequestMessage();

message.Method = HttpMethod.Post;
var body = new DriveItemCopyRequestBody {Name = fileName, ParentReference = parentReference};
message.Content = new StringContent(graphClient.HttpProvider.Serializer.SerializeObject(body));
message.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = graphClient.HttpProvider.SendAsync(message).Result;
           
Console.Write(response.Headers.Location);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM