asp.net HttpClient发布到专用API

asp.net HttpClient发布到专用API,asp.net,httpclient,Asp.net,Httpclient,我正在尝试使用HttpClient将XML发送到私有API。服务器说他们期望:HTML Post在名为“request”的变量中包含xml 我的代码: XDocument document = new XDocument(); //Here I create the XML file HttpClient client = new HttpClient(); // URL is the url for the private server client.BaseAddress = new Ur

我正在尝试使用HttpClient将XML发送到私有API。服务器说他们期望:HTML Post在名为“request”的变量中包含xml

我的代码:

XDocument document = new XDocument();
//Here I create the XML file

HttpClient client = new HttpClient();
// URL is the url for the private server
client.BaseAddress = new Uri(URL);
string request = document.ToString();
var httpConten = new StringContent(request, Encoding.UTF8, "application/xml");

System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
var result = client.PostAsync("", httpConten).Result;
结果是:

{StatusCode: 401, ReasonPhrase: 'Unauthorized', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
  Connection: keep-alive
  X-XSS-Protection: 1; mode=block
  X-Content-Type-Options: nosniff
  Referrer-Policy: same-origin
  Strict-Transport-Security: max-age=15768000; includeSubDomains
  Cache-Control: no-store
  Date: Thu, 14 Jun 2018 23:16:27 GMT
  Set-Cookie: SESSION=8dfda17c-a5c9-44c6-ae2b-d74847039f87; Path=/; Secure; HttpOnly
  Server: Apache-Coyote/1.1
  Content-Length: 469
}}
我是否正在使用名为request的XML变量编写一篇HTML文章?我联系了服务器,他们说他们没有收到我的请求

谢谢

我是否正在使用名为request的XML变量编写一篇HTML文章

回答你的问题,你不是。您正在创建一个以xml作为内容的请求。您定义的“request”变量仅在本地环境中,根本不出现在您的请求中

名为“request”的变量中的xml


但这种情况本身就很奇怪。这可能意味着发送一个json对象,其中有属性“request”,该属性等于一个xml字符串,然后它们自己解析该对象。

仔细检查URL。如果这是非常正确的,那么告诉服务器是否需要任何类型的身份验证—基本身份验证、令牌身份验证等—它们在XML文件中进行身份验证。他们说问题是因为我没有在名为“request”的变量中提交xml。我怎么能确定我在做呢?我同意。。。这很奇怪。您是否有一个带有属性“request”的json对象的示例?您是否对该api执行任何其他请求?不,这是唯一公平的请求,您说过他们执行xml身份验证。但在您的示例中,xml是空的,因此您得到的是未经授权的。除非这只是个例子,只是个例子。我构建XML。他们说XML没有问题,问题是名为“request”的变量。我不知道如何为我在HTTP帖子中发送的内容设置名称