2012-06-24 43 views
-3

這是我的閱讀網頁。在c# lang。
但我在執行它時遇到了一些異常。 任何人都知道爲什麼?http在C#獲取頁面

  try 
     { 
      string address = "http://" + txtMsg.Text; 
      int port = int.Parse(textBox1.Text); 
      System.Net.WebClient webclient = new WebClient(); 
      String content = webclient.DownloadString(address); 

      Socket skt = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); 
      skt.Connect(address, port); 
      string hdrs = "GET " + address + ":" + port + " HTTP/1.1\r\n" 
       + "Host: " + address + ":" + port + "\r\n"; 
      byte[] req_as_bytes = Encoding.UTF8.GetBytes(hdrs); 
      skt.Send(req_as_bytes); 
      byte[] data = new byte[1024 * 200]; 
      int t = skt.Receive(data); 
      lstMsg.Items.Add(Encoding.UTF8.GetString(data, 0, t)); 
      skt.Shutdown(SocketShutdown.Both); 
      skt.Close(); 

      btnConnect.Text = "done"; 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
+0

**你得到了什麼錯誤**?你讀過它嗎? – SLaks

+0

這是一個例外:「請求的名字是有效的,但沒有找到請求類型的數據」 – user1472850

+2

你在做錯誤的HTTP。閱讀規範,並在Fiddler中查看真實的請求,或者(非常可取的)使用'WebClient'並讓Microsoft完成這項工作。 – SLaks

回答

3

行!
我找到了解決方案:

private void btnConnect_Click(object sender, EventArgs e) 
    { 
     var address = "http://" + txtMsg.Text; 
     var webclient = new System.Net.WebClient(); 
     var content = webclient.DownloadString(address); 
     //any work 
     btnConnect.Text = "done"; 
    }