C#経由でlast.fmAPIにアクセスしようとしています。最初のテストとして、それが重要かどうか、似たようなアーティストに質問しています。
正しいアーティスト名、つまり「Nirvana」を渡すと、XML応答が返されます。私の問題は、無効な名前(つまり、「Nirvana23」)を配信すると、XMLを受信せず、エラーコード(403または400)とを受信することWebException
です。
興味深いことに、ブラウザ内にURLを入力すると(FirefoxとChromeでテスト済み)、必要なXMLファイル(lastfm固有のエラーメッセージが含まれています)を受け取ります。
XmlReader
私は両方を試しましたXDocument
:
XDocument doc = XDocument.Load(requestUrl);
およびHttpWebRequest
:
string httpResponse = "";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(requestUrl);
HttpWebResponse response = null;
StreamReader reader = null;
try
{
response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
httpResponse = reader.ReadToEnd();
}
URLは「http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=Nirvana23」のようなものです(そしてlastfmによって与えられた特定のキーですが、それがなくても-XMLを返すはずです)。試してみるためのリンク:リンク(これは、C#経由でアクセスできないエラーファイルです)。
私も試しました(成功しませんでした):WireSharkの助けを借りて、ブラウザーと私のプログラムの両方による要求を比較しました。次に、リクエストにいくつかのヘッダーを追加しましたが、それも役に立ちませんでした。