C# 将REST响应转换为XDocument时出现问题
实际上,我正在使用通过REST调用的web服务API。当我得到响应时,我尝试将结果转换为XDocument,以便使用LINQ处理它 但是,当我将结果字符串传递给XDocumnet构造函数时,会抛出ArgumentException,告诉我“不能将非空白字符添加到内容中。”。不幸的是,我对web服务和XML编程非常陌生,所以我真的不知道如何解释这个异常C# 将REST响应转换为XDocument时出现问题,c#,xml,rest,C#,Xml,Rest,实际上,我正在使用通过REST调用的web服务API。当我得到响应时,我尝试将结果转换为XDocument,以便使用LINQ处理它 但是,当我将结果字符串传递给XDocumnet构造函数时,会抛出ArgumentException,告诉我“不能将非空白字符添加到内容中。”。不幸的是,我对web服务和XML编程非常陌生,所以我真的不知道如何解释这个异常 我希望有人能给我一个如何解决这个问题的提示 发布了一个小REST客户端。也许这是你的一个起点。我觉得你好像是在用一根绳子握住回应。如果是这种情况,
我希望有人能给我一个如何解决这个问题的提示 发布了一个小REST客户端。也许这是你的一个起点。我觉得你好像是在用一根绳子握住回应。如果是这种情况,您可以尝试在XDocument上使用Parse方法,该方法用于从字符串中解析XML
string myResult = "<?xml blahblahblah>";
XDocument doc = XDocument.Parse(myResult);
string myResult=”“;
XDocument doc=XDocument.Parse(myResult);
这可能会也可能不会解决你的问题。这只是一个值得一试的建议,看看你是否得到了不同的结果。以下是一个可以用来查询服务的示例:
class Program
{
static void Main(string[] args)
{
using (WebClient client = new WebClient())
using (Stream stream = client.OpenRead("http://ws.audioscrobbler.com/2.0/?method=album.getinfo&api_key=b25b959554ed76058ac220b7b2e0a026&artist=Cher&album=Believe"))
using (TextReader reader = new StreamReader(stream))
{
XDocument xdoc = XDocument.Load(reader);
var summaries = from element in xdoc.Descendants()
where element.Name == "summary"
select element;
foreach (var summary in summaries)
{
Console.WriteLine(summary.Value);
}
}
}
}
您需要发布返回的XML或用于调用的代码,这太少了,无法继续。如果我没记错的话,您可以只执行XDocument doc=XDocument.Load(“);DaveThanks,我将看看这篇博文。