none
想請問一下一個網頁讀取的問題 RRS feed

  • 問題

  • 不好意思
    想請問一下一個網頁讀取的問題

    目前想要做一個程式,畫面內容包含一個WebBrowser控制項&一個button
    希望做到按下button後,自動連結到某個ASP網頁,對該網頁送出查詢的request
    並將該網頁的回覆頁面顯示在WebBrowser控制項中
    例如,按下button後自動連結到MSN首頁,並對MSN送出搜尋"MSDN"的request
    WebBrowser中顯示查詢結果頁面

    不知道各位是否可以幫我解答呢?
    目前使用了HttpRequest去連結並送出查詢的request
    但是傳回的是該網頁的原始碼
    不知道要如何才能轉成頁面
    又或者使用HttpRequest的方向根本不對
    希望各位可以幫我解答(程式碼如下)
    謝謝

    1                 HttpWebRequest wRequest = (HttpWebRequest)WebRequest.Create(sURL);  
    2                 wRequest.Method = "POST";  
    3  
    4                 ASCIIEncoding encoding = new ASCIIEncoding();  
    5                 byte[] bs = encoding.GetBytes(sParam);  
    6                 wRequest.ContentLength = bs.Length;  
    7                 wRequest.ContentType = "application/x-www-form-urlencoded";  
    8                 wRequest.Timeout = 300000;  
    9                 Stream newStream = wRequest.GetRequestStream();  
    10                 newStream.Write(bs, 0, bs.Length);  
    11                 HttpWebResponse wResponse = (HttpWebResponse)wRequest.GetResponse();  
    12                                  
    13                 Stream streamResponse = wResponse.GetResponseStream();  
    14                 StreamReader sr = new StreamReader(streamResponse, Encoding.GetEncoding("BIG5"));  
    15                 this.rtxtHtml.Text = sr.ReadToEnd();  
    16                 wResponse.Close();  
    17  



    2009年2月8日 下午 07:14

所有回覆

  • HI,

    如果Request的內容要直接顯示在WebBrowser控制項中, 您可以這樣做:
    webBrowser物件.Naviate(sURL); 


    tihs
    2009年2月9日 上午 07:58
  • 謝謝回覆
    今天嘗試用Navigate方法可以送出request,
    亦可將回覆的頁面顯示在WebBrowser控制項中
    但不知道WebBrowser有沒有哪個屬性可以判斷連接網頁時是否逾時
    因為如果逾時的話可能不會傳回查詢結果頁面
    需要針對於實在另做處理
    但找不到哪個屬性可以判斷
    是否可協助解答
    謝謝
    2009年2月9日 上午 08:53
  • HI,

    您可以這樣做做看:
    TimeSpan timeout = new TimeSpan(0, 0, 逾時秒數);  
    browser.Navigate(URL, true);  
    try  
    {  
        browser.Navigate(vPostehRef, true);  
        while (browser.IsBusy)  
        {  
            System.Windows.Forms.Application.DoEvents();  
            if (DateTime.Now - start > timeout) throw e;  
        }  
        return browser.Document;  
    }  
    catch  
    {  
        return null;  
    tihs
    2009年2月10日 上午 01:51