我有.NET Core 2.0应用程序。下面的代码使用XmlSerializer序列化对象并将内容POST到api。 (默认是DataContractSerializer,所以我显式传递XmlSerializer)
// use XmlSerializer
var formatter = new XmlMediaTypeFormatter();
formatter.UseXmlSerializer = true;
// Post as Xml
var httpResponse = await httpClient.PostAsync<TSource>(url, source, formatter).ConfigureAwait(false);
这里是请求对象
[XmlRoot(ElementName = "Request", Namespace = "")]
public class RequestDTO
{
[XmlArray("Invoices")]
[XmlArrayItem("InvoiceId")]
public string[] Invoices { get; set; }
}
然而,POST因HTTP 400错误而失败。当我在提琴手中检查请求时,我注意到以下内容
所以序列化将bd
和o
周围的实际请求包装起来。
不确定为什么?