Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取C中HTML代码的HTTP请求#_C# - Fatal编程技术网

C# 获取C中HTML代码的HTTP请求#

C# 获取C中HTML代码的HTTP请求#,c#,C#,我想从中获取HTML代码 这是我的密码: static void Main(string[] args) { TcpClient client = new TcpClient("www.w3schools.com", 80); client.SendTimeout = 3000; client.ReceiveTimeout = 3000; StreamWriter writer = new StreamWriter(

我想从中获取HTML代码 这是我的密码:

    static void Main(string[] args)
    {
        TcpClient client = new TcpClient("www.w3schools.com", 80);
        client.SendTimeout = 3000;
        client.ReceiveTimeout = 3000;
        StreamWriter writer = new StreamWriter(client.GetStream());
        StreamReader reader = new StreamReader(client.GetStream());
        writer.WriteLine("GET www.w3schools.com HTTP/1.1");
        writer.WriteLine("Host: www.w3schools.com");
        writer.WriteLine();
        writer.Flush();

        string response = reader.ReadToEnd();

        Console.WriteLine("Got Response: {0}", response);

        Console.ReadLine();
    }
但我得到了以下信息:
我错在哪里?

获取行的第二个元素应该是查询路径,而不是域名。这应该起作用:

writer.WriteLine("GET / HTTP/1.1");
writer.WriteLine("Host: www.w3schools.com");
  • 要使此TCP客户端正常工作,您需要有一个WPWorking TCP服务器
  • 正确的uri应该类似(“”),其中在.com之后将提供文件名
  • 即使没有TcpServer,下面的代码也可以工作

    public static void getSavedHtmlCode()
        {
            string html = string.Empty;
    
    
            try
            {
                var request = System.Net.HttpWebRequest.Create(string.Format("{0}", "https://www.w3schools.com/html/default.asp"));
                request.Method = "GET";
                var response = (HttpWebResponse)request.GetResponse();
    
                //prepare as html
                //html = new StreamReader(response.GetResponseStream()).ReadToEnd();
    
                // Get the stream associated with the response.
                Stream receiveStream = response.GetResponseStream();
    
                // Pipes the stream to a higher level stream reader with the required encoding format. 
                StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);
    
                //prepare as html
                html = readStream.ReadToEnd();
    
                Console.WriteLine("Response stream received.");
                Console.WriteLine(html);
    
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    

    您尝试使用
    TcpClient
    而不是
    HttpClient
    执行此操作是否有任何特殊原因?可能存在重复的