[英]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.