簡體   English   中英

HTTP請求以C#獲取HTML代碼

[英]HTTP Request to get HTML code in C#

我想從http://www.w3schools.com/獲得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();
    }

但是我得到以下信息: 問題 我哪里錯了?

GET行的第二個元素應該是查詢路徑,而不是域名。 這應該工作:

writer.WriteLine("GET / HTTP/1.1");
writer.WriteLine("Host: www.w3schools.com");
  1. 為了使該TcpClient正常工作,您需要具有Wporking TcpServer。
  2. 正確的uri應該類似於(“ https://www.w3schools.com/html/default.asp ”),其中.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);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM