ASP.Net C# Deserialize HttpContentMessage XML Content error: "Data at the root level is invalid"

44 Views Asked by At
    HttpResponseMessage response = await _client.PostAsync("/setup", httpContent);
    response.EnsureSuccessStatusCode();
    XmlSerializer serializer = new XmlSerializer(typeof(CXMLResponse));
    string? strXmlResponse = await response.Content.ReadAsStringAsync();
    //CXMLResponse punchOutResponse = await response.Content.ReadAsAsync<CXMLResponse>(); XXX: This returns NULL object
    CXMLResponse punchOutResponse = null;
    using (StringReader reader = new StringReader(strXmlResponse))
        punchOutResponse = (CXMLResponse)serializer.Deserialize(reader);

CXMLResponse definition:

[XmlRoot(Namespace = "", ElementName = "cXML", DataType = "string", IsNullable = false)]
public class CXMLResponse {...}
System.InvalidOperationException : There is an error in XML document (1, 1).
---- System.Xml.XmlException : Data at the root level is invalid. Line 1, position 1.

strXmlResponse:

"{\"payloadID\":\"PayloadID\",\"timestamp\":\"2023-01-04T09:40:34.551199+00:00\",\"response\":{\"status\":{\"code\":\"OK\",\"text\":\"OK\"},\"punchOutSetupResponse\":{\"startPage\":{\"url\":\"https://www.kyberlife.com\"}}}}"
1

There are 1 best solutions below

0
On
_client.DefaultRequestHeaders.Add("Accept", "application/xml");