在測試程序中,我使用一個有效的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」);. –