C# 发送xml数据时无法成功调用web api

C# 发送xml数据时无法成功调用web api,c#,C#,目前,我无法使用C#成功调用API。我已经附上了一张Chrome PostMan成功拨打电话的屏幕截图,尽管我无法在C#中复制它。他是我迄今为止失败的尝试。我从服务器得到的响应包括在下面。有人能看出我做错了什么吗? 非常感谢,, 詹姆斯 代码片段 const string xml = "<Envelope><Body> <AddRecipient>..."; var req = (HttpWebRequest)WebRequest.Create(ApiUrl)

目前,我无法使用C#成功调用API。我已经附上了一张Chrome PostMan成功拨打电话的屏幕截图,尽管我无法在C#中复制它。他是我迄今为止失败的尝试。我从服务器得到的响应包括在下面。有人能看出我做错了什么吗?
非常感谢,, 詹姆斯

代码片段

const string xml = "<Envelope><Body> <AddRecipient>...";
var req = (HttpWebRequest)WebRequest.Create(ApiUrl);
    var requestBytes = System.Text.Encoding.ASCII.GetBytes(xml);
req.Method = "POST";
req.Headers.Add("Authorization", "Bearer " + token);
req.ContentType = "application/x-www-form-urlencoded"; 
req.ContentLength = requestBytes.Length;
var requestStream = req.GetRequestStream(); 
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();
var res = (HttpWebResponse)req.GetResponse();  // Call API
var sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
var backstr = sr.ReadToEnd();
sr.Close();
res.Close();
const string xml=“…”;
var req=(HttpWebRequest)WebRequest.Create(apirl);
var requestBytes=System.Text.Encoding.ASCII.GetBytes(xml);
请求方法=“POST”;
请求头添加(“授权”、“承载人”+令牌);
req.ContentType=“应用程序/x-www-form-urlencoded”;
req.ContentLength=requestBytes.Length;
var requestStream=req.GetRequestStream();
Write(requestBytes,0,requestBytes.Length);
requestStream.Close();
var res=(HttpWebResponse)req.GetResponse();//调用API
var sr=新的StreamReader(res.GetResponseStream(),System.Text.Encoding.Default);
var backstr=sr.ReadToEnd();
高级关闭();
res.Close();
铬合金邮递员

API的回复

<Envelope><Body><RESULT><SUCCESS>false</SUCCESS></RESULT><Fault><Request/><FaultCode/><FaultString>Server Error</FaultString><detail><error><errorid>50</errorid><module/><class>SP.API</class><method/></error></detail></Fault></Body></Envelope>
false服务器错误50sp.API

是否有关于错误50是什么的文档?可能只是一辆糟糕的婴儿车?如果不是,我建议下载。然后,您可以正确地比较来自PostMan和您的应用程序的请求,以查看实际的差异。

我打赌您有一些关于错误50含义的文档。+您正在使用示例xml。我在你的邮递员示例中没有看到。我已经更新了代码片段。C#尝试使用与我在《邮递员》中使用的相同的xml。有什么想法吗?许多人使用RestSharpError代码调用Web服务意味着(取自文档):50个服务器错误(如果API调用不正确,通常会返回,比如请求中没有传递XML),就像我说的try Fiddler。可能是API需要一个额外的头(比如用户代理),如果没有它,就会出现错误。Fiddler将向您展示有关请求/响应的所有信息。