使用tcp级别发布请求

时间:2016-11-16 11:13:46

标签: c# winforms

我可以使用webclient登录网站(eaxmple.com)。但是当网站用户很重时它会慢一些。所以我认为要降低水平。

我需要建议在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();

请建议并提供一个链接,我可以从此处开始。

1 个答案:

答案 0 :(得分:0)

简而言之,要发送POST请求,只需将动词'GET'替换为'POST'即可。要将实际有效负载(如表单数据)添加到请求,请在header变量的末尾附加第二个换行符,然后在base64格式中附加实际数据。 Cookie被添加为标题。 只需谷歌'POST HTTP格式'并查找示例代码,必须有几十个。 HTTP请求只是一系列字符 - 至少,你可以从它开始。

但是,如果您遇到带宽或服务器负载问题,“向下一级”将无法帮助您。此外,构建功能齐全的HTTP客户端并不容易。很多工作都没有。