簡體   English   中英

C# 調用圖 API with .Net Framework 4.0

[英]C# Call Graph API with .Net Framework 4.0

Hey im trying to post an http request (Create Teams online meeting) to the Graph API under c#.Net Framework 4.0 so i cannot use the Graph-SDK and i cannot use the System.net.http libary (no httpClient). 我嘗試了 HttpWebRequest,但在將 Json 發布到 API 時遇到了困難。

我的請求 Function 看起來像這樣:

private string SendHttpRequest(string Method, string ContentType, WebHeaderCollection Headers, string Content, string URI)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URI);

                request.Method = Method;
                request.Headers = Headers;
                request.PreAuthenticate = true;
                request.ContentType = ContentType;

                StreamWriter requestWriter = new StreamWriter(request.GetRequestStream());
                requestWriter.Write(Content);
                requestWriter.Close();

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                var responseStream = response.GetResponseStream();

                StreamReader responseReader = new StreamReader(responseStream);
                string responseText = responseReader.ReadToEnd();
                responseReader.Close();

                return responseText;
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

當我的內容類型是 text/xml(對於不同的 API)但不是它的 Application/Json 時,這很好用。 當我調用HttpWebResponse response = (HttpWebResponse)request.GetResponse();

方法= "POST"

ContentType = "application/json"

Headers = Headers.Set(HttpRequestHeader.Authorization, "Bearer " + accessToken);

內容 = string jsonContent = JsonConvert.SerializeObject(Content);

URI = "https://graph.microsoft.com/v1.0/me/onlineMeetings"

對於任何有同樣困難的人。

我錯過了 startDateTime 和 endDateTime 中的時區。

要添加那些我必須格式化我從數據庫中接收的日期時間。

這對我有用:

TimeAndOffset = new DateTimeOffset(reservation.beginnUhrzeit,
   TimeZoneInfo.Local.GetUtcOffset(reservation.beginnUhrzeit));
teamsCreate.startDateTime = TimeAndOffset.ToString("o");

reservation.beginnUhrzeit 是我的數據庫變量

teamCreate 是一個 Object 我可以稍后序列化為 Json

之后一切正常。

暫無
暫無

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

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