2016-11-16 94 views
-2

我可以使用webclient登錄到網站(eaxmple.com)。但是當網站用戶很重時,它會變慢。所以我認爲要走低一點。使用tcp級別發送請求

我需要的建議是在c#中使用tcpclient。登錄後我也需要管理cookie。我試圖從msdn學習這個類,但無法理解如何使用tcpclient發佈帖子並獲取請求。

我試過這個獲取請求。但不知道後和cookie管理

byte[] buf = new byte[1024]; 
      string header = "GET /?scope=images&nr=1 HTTP/1.1\r\n" + 
          "Host: www.bing.com\r\n" + 
          "Connection: keep-alive\r\n" + 
          "User-Agent: Mozilla/5.0\r\n" + 
          "\r\n"; 

      var client = new TcpClient(); 
      client.Connect("www.bing.com", 80); 

      // send request 
      var stream = client.GetStream(); 
      var streamReader = new StreamReader(stream); 
      var streamWriter = new StreamWriter(stream); 

      streamWriter.Write(header); 
      streamWriter.Flush(); 
      stream.Flush(); 

      // get response 
      var response1 = streamReader.ReadLine(); 

請建議並提供一個鏈接,我可以開始這個。

回答

0

簡而言之,要發送POST請求,只需用'POST'替換動詞'GET',然後就可以了。要將實際有效負載(如表單數據)添加到請求中,請在header變量末尾附加第二個換行符,然後再以base64格式輸入實際數據。 Cookies添加爲標題。 只需谷歌'POST HTTP格式',並尋找代碼示例,必須有幾十個。一個HTTP請求只是一系列字符 - 至少,你可以從它開始。

但是,如果您有帶寬或服務器負載問題,「降低一個級別」不會對您有所幫助。另外,構建一個功能完整的HTTP客戶端並不容易。大量的工作沒有。

+0

嗨Dercsár, 有沒有辦法在服務器太忙時快速提取數據?我的意思是當服務器有很多用戶點擊網站。 –

+0

我可以成爲一個百萬富翁,如果我對這個問題有一個積極的答案:) –

+0

噢謝謝..但你說'走下一級'不會幫助你。但是我看到文章說tcp級別比httpwenrequest更快。 –