【发布时间】:2020-10-04 23:57:51
【问题描述】:
嘿,我试图在 c# .Net Framework 4.0 下向 Graph API 发布一个 http 请求(创建团队在线会议),所以我不能使用 Graph-SDK,也不能使用 System.net.http 库(没有 httpClient) .我尝试了 HttpWebRequest,但在将 Json 发布到 API 时遇到了困难。
我的请求函数如下所示:
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();时,我总是收到错误 400
方法 = "POST"
ContentType = "application/json"
标题 = Headers.Set(HttpRequestHeader.Authorization, "Bearer " + accessToken);
内容 = string jsonContent = JsonConvert.SerializeObject(Content);
URI = "https://graph.microsoft.com/v1.0/me/onlineMeetings"
【问题讨论】:
-
错误具体说明了什么?我记得图表错误包含一些额外的信息。
-
您使用的是哪个 .net 版本?
-
@jjczopek 我得到的完整错误是:Der Remoteserver hat einen Fehler zurückgegeben: (400) Ungültige Anforderung。这是德语,简单地说是Bad Request。我很遗憾没有得到更多信息
-
@Trinetra-MSFT .Net Framework 4
-
你能分享你发送的 JSON 有效载荷吗?
标签: c# json api microsoft-teams