【发布时间】:2012-01-23 17:18:10
【问题描述】:
我正在尝试通过 C# 访问 last.fm API。作为第一个测试,如果这很重要,我会询问类似的艺术家。
当我传递正确的艺术家姓名(即“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)。一个尝试的链接:link(这是我无法通过 C# 访问的错误文件)。
我也尝试过(没有成功):在 WireShark 的帮助下比较浏览器和我的程序的请求。然后我在请求中添加了一些标头,但这也没有帮助。
【问题讨论】:
-
我没有使用过 WireShark,但你可能会更好地使用 HTTP 调试器,例如 Fiddler。
标签: c# .net xml webexception