Tcpclient 和 webRequest 的区别

use*_*186 -1 c# webrequest tcpclient

我正在尝试验证网站是否已启动。我正在使用 TcpClient 调用网站并且它工作正常但是当我对同一站点使用 webrequest 时它会引发 404 错误。

TcpClient 和 webRequest 的功能有什么区别??

var client = new TcpClient();
client.Connect("android.clients.google.com", 80);

var request = WebRequest.Create("http://android.clients.google.com");
var resp = request.GetResponse(); 
Run Code Online (Sandbox Code Playgroud)

Cod*_*ter 5

TcpClient 和 webRequest 的功能有什么区别??

ATcpClient是 TCP 客户端套接字的包装器,可让您与任何 TCP 服务器进行通信。用于与该服务器通信的应用程序协议将由您的代码实现。您的代码仅连接到 HTTP 服务器,但不与其通信。

AnHttpWebRequest不仅处理 TCP 层,还处理HTTP 层。这使您可以对任何 HTTP 服务器执行 Web 请求。您的代码执行对 的GET请求http://android.clients.google.com,该请求不存在,因此404您会收到。

解决您的原始问题:Web 服务器响应给定端口上的套接字连接甚至返回 HTTP 响应这一事实,可能意味着也可能不意味着该站点被视为“正常运行”,因此获得 200 响应也是如此。收到Twitter 的“失败鲸鱼”是否意味着该网站已“上线”?根据您实际尝试执行的操作,可能需要不同的方法。有时最好触发您想要的请求,而不是事先“ping”站点。