none
AP 與 網頁的互動 RRS feed

  • 問題


  •             Dim proxyObject As System.Net.WebProxy
                Dim proxyString As String

                                '指向該網頁
                    Dim MyRequest As System.Net.HttpWebRequest = System.Net.WebRequest.Create("http://mops.tse.com.tw/server-java/t39sb01")
                    proxyString = "192.168.1.19:80"
                    '若有Proxy  則設定proxy
                    If proxyString <> "" Then
                        Dim value As System.Net.ICredentials

                        proxyObject = New System.Net.WebProxy(proxyString, True)
                        proxyObject.Credentials = System.Net.CredentialCache.DefaultCredentials
                        value = proxyObject.Credentials
                        proxyObject.Credentials = value
                        MyRequest.Proxy = proxyObject
                    End If

                    '準備參數
                    Dim encoding As System.Text.ASCIIEncoding = New System.Text.ASCIIEncoding
                    Dim postdata As String
                    postdata = "type=0&tyope=1&keyword=2002"
                    Dim data As Byte() = encoding.GetBytes(postdata)

                    MyRequest.Method = "POST"
                    MyRequest.ContentType = "application/x-www-form-urlencoded"

                    MyRequest.ContentLength = data.Length
                    Dim newStream As System.IO.Stream = MyRequest.GetRequestStream()
                    '傳送參數
                    newStream.Write(data, 0, data.Length)
                    newStream.Close()

     


                    '讀取指定網頁內容
                    Dim MyWebResponse As System.Net.WebResponse = MyRequest.GetResponse()
                    Dim myStream As IO.Stream
                    myStream = MyWebResponse.GetResponseStream

                    '設定編碼模式
                    Dim StreamReader As New IO.StreamReader(myStream, System.Text.Encoding.Default)
                    MessageBox.Show(StreamReader.ReadToEnd())

    程式會 在  Dim MyWebResponse As System.Net.WebResponse = MyRequest.GetResponse()
    這一段出現錯誤  "連線逾時"

     

    2007年8月24日 上午 06:42

解答

所有回覆

  • 加長你的 HttpWebRequest.Timeout 值,單位是毫秒,預設是 100 秒。

    2007年8月24日 上午 07:20
    版主
  • 我試過 加上  timeout 的設定

    但 還是錯誤耶   "作業逾時"

    是否 我以上的寫法有哪邊要注意

    麻煩幫個忙囉

     

     

    2007年8月24日 上午 09:01
  • 那 Timeout 可能要再拉更長。

    2007年8月24日 上午 09:12
    版主
  •  

    我已經加到

    MyRequest.Timeout = Integer.MaxValue

    這樣還是跑不來

     

    因為 這個網頁 應該不會跑這麼長的時間

    要請您再幫幫忙了

    2007年8月24日 上午 09:16
  • 現在 不會 timeout  可是  利用POST  傳進去參數 都沒用

    還是會 回傳查詢頁

    我的環境  是在公司內部  查尋  外部網站 要取得資料

    程式如下 是否 有參數要設定 

     

    Dim proxyObject As System.Net.WebProxy
                Dim proxyString As String

     

                '指向該網頁
                Dim MyRequest As System.Net.HttpWebRequest = System.Net.WebRequest.Create("http://mops.tse.com.tw/server-java/t108sb27")
                proxyString = ""
                '若有Proxy  則設定proxy
                If proxyString <> "" Then
                    Dim value As System.Net.ICredentials

                    proxyObject = New System.Net.WebProxy(proxyString, True)
                    proxyObject.Credentials = System.Net.CredentialCache.DefaultCredentials
                    value = proxyObject.Credentials
                    proxyObject.Credentials = value

     

                    MyRequest.Proxy = proxyObject

                End If
                MyRequest.ContentType = "application/x-www-form-urlencoded"
                MyRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
                MyRequest.Method = "POST"


                Dim postData As String = "TYPEK=&STEP=1&co_id_1=&co_id_2=&year=96&month=&day1=&day2=order="
                Dim encoding As New System.Text.ASCIIEncoding()
                Dim byte1 As Byte() = encoding.GetBytes(postData)

     

                MyRequest.ContentLength = byte1.Length
                Dim newStream As System.IO.Stream = MyRequest.GetRequestStream()
                newStream.Write(byte1, 0, byte1.Length)
                'newStream.Close()

     

                '讀取指定網頁內容
                Dim MyWebResponse As System.Net.WebResponse = MyRequest.GetResponse()
                Dim myStream As IO.Stream
                myStream = MyWebResponse.GetResponseStream

                '設定編碼模式
                Dim StreamReader As New IO.StreamReader(myStream, System.Text.Encoding.Default)
                Me.TextBox1.Text = StreamReader.ReadToEnd()

     

     

    2007年9月4日 上午 03:25
  • 通常GetResponse()後,連線還是存在,當執行多次後,
    就掛了(原因不知,可能系統排程器已滿之類的)
    故每次作業完成時,請加入myHttpWebRequest.Abort();

    下一次執行再重新建立myHttpWebRequest實体。

    試試看

    2009年5月26日 上午 06:07
  • 測試時,先在本機建立對應可以接收 post / get 的網頁,確認程式碼 ok ,很多網站為了防砍站程式,是有特別針對這類工具進行偵測防堵的。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    2009年5月26日 上午 06:22