具有xml正文的HttpClient postAsync以BadRequest错误结束

时间:2018-11-09 06:01:12

标签: c# xml dotnet-httpclient

我想将xml字符串消息发布到服务器,但最终以错误的请求结束。 似乎很简单,但我并没有误会我的意思?

请帮助。 :(

msgXML是字符串化的xml

 public static async Task<string> SendMessageAsync(string msgXml)
 {
  using (CancellationTokenSource source = new CancellationTokenSource())
  {
    CancellationToken cancellation = source.Token;
    HttpClient client = HttpClientProvider.GetInstance;
    //client.BaseAddress = new Uri(myUri);
    client.DefaultRequestHeaders.Accept.Add(new 
    MediaTypeWithQualityHeaderValue("application/xml"));
    client.DefaultRequestHeaders.Add("X-HTTP-Dest-Address", destinationAddress);
    client.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/xml;charset=utf-8");
    var httpContent = new StringContent(msgXml, Encoding.UTF8, "application/xml");

    HttpResponseMessage httpResponse = await client.PostAsync(myUri, httpContent, cancellationToken).ConfigureAwait(false);
    if (!httpResponse.IsSuccessStatusCode)
     {
       throw new Exception("Invalid URI");
     }
  }
}

我的msgXML:

<MSG>
 <HeaderCommon>
  other elements....
  <payload></payload>
 </HeaderCommon>
</MSG>

我得到的错误仅仅是:

    ReasonPhrase: "Bad Request"
    statusCode: 400

服务器不安全(http)。

1 个答案:

答案 0 :(得分:0)

很抱歉,我使用了错误的网址。

上面的代码工作正常。