在测试程序中,我使用一个有效的URL(通过不使用在所述请求中&
代替使用直接&符号&
),并且响应正确地返回:
var client = new HttpClient();
var response = await client.GetStringAsync(new Uri("https://parmismedia1.com/musicplayeralbum.aspx?album=666&id=8503&title=farzad-farzin-6-to-che-bashi"));
如此说来,您的原始查询也会成功返回,只是在完全返回之前执行多次重定向。
但是,我没有因为它包含在响应开头的错误信息通知,返回的HTML页面并不完全有效:
The process cannot access the file 'C:\inetpub\PMWebsite\Log\500_2016-04-03.log' because it is being used by another process.
<!DOCTYPE html>
<html lang="en" class="app">
<head><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /><title>
您可能要检查与该网站的创建者检查是否抓取他们的Web应用程序内容是否正常,以及他们是否可以使用直接API来代替。
它的工作原理和我得到页面文本,但我的意思是它不包括包含曲目列表的部分。如果您在浏览器中打开该页面,则可以看到左侧包含专辑封面和曲目的部分,并且该部分不包含在已分析的文本中。 – mhmt93t
你的回复文字是否包含曲目名称? – mhmt93t
是的,它的确如此。也许你正在使用VS字符串检查器,有时它不会显示大字符串的所有内容。尝试添加一些像System.IO.File.WriteAllText(@“C:\ temp \ test.txt”,html);并在文件中查看结果。或者在代码中测试歌曲名称,如bool containsThirdSong = html.Contains(“3 - Dir Omadi”);. –