XML 来自 URL - 根级别的数据无效。第 1 行,位置 1 为什么它适用于一个 URL 而不是另一个?

XML from URL - Data at the root level is invalid. Line 1, position 1 Why it works with one URL and not the other?

据我所知,这两个端点都是有效的 XML 输出。但是,当我在第二个端点使用相同的代码时,出现错误:

Data at the root level is invalid. Line 1, position 1

这是我的代码:

        //Works
        XmlDocument testDocument = new XmlDocument();
        testDocument.Load("https://www.w3schools.com/xml/note.xml");

        //Fails
        XmlDocument testDocumentTwo = new XmlDocument();
        testDocumentTwo.Load("https://www.domainNameHere.com/direct/umbraco/api/productsearch/NameSearch?countryCode=en-gb");

我打开了 Fiddler 并观察了请求及其响应,你看你的端点正在返回 JSON,而不是 XML:

如果我使用 HttpClient 设置一个明确的 Accept header,然后我得到 XML 并且一切正常:

using var client = new HttpClient();
var requestMessage = new HttpRequestMessage(HttpMethod.Get, "https://www.clinigengroup.com/direct/umbraco/api/productsearch/NameSearch?countryCode=en-gb");
requestMessage.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
var response = await client.SendAsync(requestMessage);
var xml = await response.Content.ReadAsStringAsync();

XmlDocument testDocumentTwo = new XmlDocument();
testDocumentTwo.LoadXml(xml);