使用tcp级别发送请求
问题描述:
我可以使用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();
请建议并提供一个链接,我可以开始这个。
答
简而言之,要发送POST请求,只需用'POST'替换动词'GET',然后就可以了。要将实际有效负载(如表单数据)添加到请求中,请在header
变量末尾附加第二个换行符,然后再以base64格式输入实际数据。 Cookies添加为标题。 只需谷歌'POST HTTP格式',并寻找代码示例,必须有几十个。一个HTTP请求只是一系列字符 - 至少,你可以从它开始。
但是,如果您有带宽或服务器负载问题,“降低一个级别”不会对您有所帮助。另外,构建一个功能完整的HTTP客户端并不容易。大量的工作没有。
嗨Dercsár, 有没有办法在服务器太忙时快速提取数据?我的意思是当服务器有很多用户点击网站。 –
我可以成为一个百万富翁,如果我对这个问题有一个积极的答案:) –
噢谢谢..但你说'走下一级'不会帮助你。但是我看到文章说tcp级别比httpwenrequest更快。 –