C# 获取C中HTML代码的HTTP请求#
我想从中获取HTML代码 这是我的密码: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(
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");
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
执行此操作是否有任何特殊原因?可能存在重复的