Проблемы с преобразованием ответа REST в XDocument - PullRequest
2 голосов
/ 20 января 2009

Я на самом деле играю с last.FM API веб-службы, который я вызываю через REST. Когда я получаю ответ, я пытаюсь преобразовать результат в XDocument, чтобы я мог использовать LINQ для работы с ним.

Но когда я передаю результирующую строку конструктору XDocumnet, возникает исключение ArgumentException, сообщающее мне, что «непробельные символы не могут быть добавлены к содержимому». К сожалению, я очень плохо знаком с веб-сервисами и программированием XML, поэтому я не знаю, как интерпретировать это исключение.

Надеюсь, кто-нибудь подскажет, как решить эту проблему.

Ответы [ 3 ]

4 голосов
/ 20 января 2009

Мне кажется, что вы держите ответ в виде строки. Если это так, вы можете попытаться использовать метод Parse в XDocument, который предназначен для анализа XML из строки.

string myResult = "<?xml blahblahblah>";
XDocument doc = XDocument.Parse(myResult);

Это может решить, а может и не решить вашу проблему. Просто предложение, которое стоит попробовать, если вы получите другой результат.

3 голосов
/ 20 января 2009

Вот пример, который вы можете использовать для запроса сервиса:

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);
            }
        }
    }
}
1 голос
/ 20 января 2009

http://jamescrisp.org/2008/08/08/simple-rest-client/ опубликовал небольшой клиент REST. Может быть, отправной точкой для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...