2016-11-16 9 views
-2

webclientを使用してサイト(eaxmple.com)にログインできます。サイトユーザーが重い場合は遅くなります。だから私は低いレベルで行くと思う。tcpレベルを使用した投稿要求

私は、c#でtcpclientと一緒に行くのは良いことが必要です。ログイン後もクッキーを管理する必要があります。私は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リクエストを送信するには、動詞 'GET'を 'POST'に置き換えてください。リクエストに実際のペイロード(フォームデータなど)を追加するには、header変数の最後に2行目の改行を追加し、次に実際のデータをbase64形式で追加します。クッキーはヘッダーとして追加されます。 「POST HTTPフォーマット」のgoogleとサンプルコードを検索するには、数十が必要です。 HTTPリクエストは単なる文字列です。少なくとも、あなたはそれを使い始めることができます。

しかし、帯域幅やサーバー負荷の問題がある場合は、「1レベル下がる」ことは役に立ちません。また、完全に機能するHTTPクライアントを構築することは容易ではありません。何のための仕事の多く。

+0

こんにちはDercsár、 サーバーがビジー状態のときにデータを高速にフェッチする方法はありますか?私はサーバが多くのユーザーヒットサイトを持っていることを意味します。 –

+0

私はこの質問のために肯定的な答えを持っていれば私は億万長者になる可能性があります:) –

+0

オハイオ州のおかげで..しかし、あなたは、しかし、私は記事がTCPレベルがhttpwenrequestより速いと言っていました。 –

関連する問題