据我所知,这两个端点都是有效的XML输出。但是,当我在第二个端点上使用相同的代码时,出现错误:
根级别的数据无效。第1行,位置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
标头,那么我会得到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);