2012-11-17 172 views
-1

因此,我發送一個httpwebrequest到一個特定的網站,我需要從該網站的圖像,但這個圖像加載3-5秒後請求完成,所以來源不包含圖像,我要做出某種延遲的,所以我可以在幾秒鐘後,得到的迴應,這是我的代碼:HttpWebRequest圖像加載延遲

HttpWebRequest req1 = (HttpWebRequest)WebRequest.Create("url");    
      using(var httpResponse = req1.GetResponse()) 
      { 
       using (var ResponseStream = httpResponse.GetResponseStream()) 
       { 
        if (ResponseStream != null) 
        { 
         using (StreamReader sr = new StreamReader(ResponseStream)) 
         { 

          string response = sr.ReadToEnd();        
          var doc = new HtmlAgilityPack.HtmlDocument(); 
          doc.Load(ResponseStream); 

          foreach(HtmlNode node in doc.DocumentNode.SelectNodes("src"))//it's not working because the source does not contain the image 
          { 
           pictureBox1.ImageLocation = node.ToString(); 
          } 
         } 
        } 
       } 
      } 
+0

獲得響應比什麼時間晚幾秒?聽起來這可能是客戶端程序延遲,例如,在Javascript中...但目前你基本上不清楚。 –

+0

正如我所說的網站幾秒鐘後加載圖像,所以我需要幾秒鐘後的迴應,以捕捉該圖像,我想我很清楚 –

+0

不,你真的不是。你需要考慮這裏發生的事情。喬希的回答基本上提供了更多的細節。這不是在幾秒鐘後向服務器詢問響應的問題 - 這與瀏覽器*在響應中的作用有關。 –

回答

3

什麼是可能發生的是,頁面加載,然後一個Javascript事件觸發,使一個單獨調用服務器來加載圖像。延遲您的HTTP請求不會幫助您實現您的願望。

我建議

  1. 打開谷歌瀏覽器的頁面,然後按CTR-Shift-J鍵,彈出開發工具。
  2. 點擊網絡標籤。
  3. 點擊開發者工具底部的「圖片」。
  4. 點擊網絡標籤。
  5. 導航到包含圖像的頁面。您將在Developer Tools中看到對該圖片的請求。
  6. 嘗試並找出在Javascript中創建請求的位置。

如果您提供指向您正在討論的網頁的鏈接,我或其他人可能會進一步澄清。

+0

https://edit.yahoo.com/registration?.src=fpctx&.intl=us&.done=http%3A%2F%2Fwww.yahoo.com%2F –

+0

另請參見@ scotthanselman的優秀帖子互聯網不是一個黑盒子:http://www.hanselman.com/blog/TheInternetIsNotABlackBoxLookInside.aspx – Nate

+0

我仔細檢查過,但我仍然不知道如何處理它 –