我實際上正在玩弄我通過REST調用的last.FM web服務API。當我得到響應時,我嘗試將結果轉換爲XDocument,以便我可以使用LINQ來處理它。將REST響應轉換爲XDocument的問題
但是,當我將結果字符串傳遞給XDocumnet構造函數時,拋出了一個ArgumentException,告訴我「無法將空白字符添加到內容中」。不幸的是,我對Web服務和XML編程非常陌生,所以我不知道如何解釋這個異常。
我希望有人能給我一個提示如何解決這個問題。
我實際上正在玩弄我通過REST調用的last.FM web服務API。當我得到響應時,我嘗試將結果轉換爲XDocument,以便我可以使用LINQ來處理它。將REST響應轉換爲XDocument的問題
但是,當我將結果字符串傳遞給XDocumnet構造函數時,拋出了一個ArgumentException,告訴我「無法將空白字符添加到內容中」。不幸的是,我對Web服務和XML編程非常陌生,所以我不知道如何解釋這個異常。
我希望有人能給我一個提示如何解決這個問題。
這聽起來像是你在一個字符串中持有響應。如果是這種情況,您可以嘗試在XDocument上使用Parse方法,該方法用於從字符串中解析XML。
string myResult = "<?xml blahblahblah>";
XDocument doc = XDocument.Parse(myResult);
這可能會也可能不會解決您的問題。只是一個值得嘗試看看你是否得到不同結果的建議。
http://jamescrisp.org/2008/08/08/simple-rest-client/已經發布了一個小小的REST客戶端。也許是你的起點。
謝謝,我會看看這篇博文。 – Flo 2009-01-20 10:25:38
這裏是你可以用它來查詢服務的示例:
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);
}
}
}
}
你可以只做XDocument doc = XDocument.Load(「http:// www ...」); 如果我記得正確。 Dave – 2009-01-19 23:47:58
您需要張貼返回的XML,或者您正在使用調用的代碼,這是得太少去。 – casperOne 2009-01-19 22:17:52