Когда я пытаюсь импортировать XML из URL, это работает неправильно - PullRequest
0 голосов
/ 12 января 2020

Stuggling, чтобы получить XML для импорта, продолжайте получать

403 Ошибка

В качестве основы c, я код слепой и тянущий это неправильно?

Когда я go до http://musicbrainz.org/ws/2/artist/?query=artist: coldplay это работает.

Однако я попробовал приведенный ниже код и получил

* Ошибка 1018 * 403

Я пробовал несколько других вещей, но приведенный ниже код основан на https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/querying-an-xdocument-vs-querying-an-xelement

var url = "http://musicbrainz.org/ws/2/artist/?query=artist:coldplay%20AND%20type:group%20AND%20country:GB";

XDocument doc = XDocument.Load(url);

IEnumerable <XElement> childList =
    from el in doc.Elements()
    select el;

foreach (XElement e in childList)
    Console.WriteLine(e); 

Дополнительно, я также пробовал:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://musicbrainz.org/ws/2/artist/?query=artist:coldplay");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

1 Ответ

2 голосов
/ 12 января 2020

Похоже, в вашем случае сервер ожидал, что вы установите UserAgent заголовок , прежде чем вы сможете получить xml:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://musicbrainz.org/ws/2/artist/?query=artist:coldplay");    
request.UserAgent = "My Super Script";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();  


XDocument doc = XDocument.Load(response.GetResponseStream());

IEnumerable<XElement> childList =
    from el in doc.Elements()
    select el;

foreach (XElement e in childList)
    Console.WriteLine(e);

Подробнее об их API здесь : https://musicbrainz.org/doc/Development/XML_Web_Service/Version_2

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