c# 提取网络

csharp,using System.Net;,WebClient client = new WebClient();,string content = client.DownloadString("http://example.com");,

在C#中提取网络相关内容是一个较为宽泛的概念,以下是几种常见的情况及实现方法:

c# 提取网络

1、引入命名空间

using System.Net.Http;

2、创建HttpClient实例并发送请求

示例代码如下:

static async Task Main(string[] args)
{
    using (HttpClient client = new HttpClient())
    {
        try
        {
            HttpResponseMessage response = await client.GetAsync("https://example.com");
            response.EnsureSuccessStatusCode();
            string responseBody = await response.Content.ReadAsStringAsync();
            Console.WriteLine(responseBody);
        }
        catch (HttpRequestException e)
        {
            Console.WriteLine("
Exception Caught!");
            Console.WriteLine("Message :{0} ", e.Message);
        }
    }
}

3、解释

首先创建了HttpClient的实例,使用GetAsync方法发送GET请求到指定的网址,该方法返回一个HttpResponseMessage对象,通过调用EnsureSuccessStatusCode方法来检查响应是否成功,若不成功则抛出异常,然后使用ReadAsStringAsync方法将响应内容读取为字符串并输出。

二、解析HTML获取特定数据

1、引入HtmlAgilityPack库

需要先安装HtmlAgilityPack,可通过NuGet包管理器安装。

c# 提取网络

安装命令:Install-Package HtmlAgilityPack

2、加载HTML并提取数据

示例代码如下:

using HtmlAgilityPack;
class Program
{
    static void Main()
    {
        string url = "https://example.com";
        string html = GetHtml(url);
        HtmlDocument document = new HtmlDocument();
        document.LoadHtml(html);
        var nodes = document.DocumentNode.SelectNodes("//a");
        foreach (var node in nodes)
        {
            Console.WriteLine(node.InnerText);
        }
    }
    static string GetHtml(string url)
    {
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
            return client.GetStringAsync(url).Result;
        }
    }
}

3、解释

先定义了一个获取网页HTML内容的GetHtml方法,在该方法中使用HttpClient发送请求并获取网页内容,然后在主方法中,使用HtmlAgilityPack的HtmlDocument类加载HTML内容,通过XPath表达式"//a"选择所有的<a>标签节点,并遍历这些节点输出其文本内容。

三、从网络流中提取数据

1、使用TcpClient连接网络流

示例代码如下:

using System.Net.Sockets;
using System;
using System.Text;
class Program
{
    static void Main()
    {
        TcpClient client = new TcpClient("localhost", 8080);
        NetworkStream stream = client.GetStream();
        byte[] data = new byte[1024];
        int bytesRead = stream.Read(data, 0, data.Length);
        string responseData = Encoding.ASCII.GetString(data, 0, bytesRead);
        Console.WriteLine(responseData);
        stream.Close();
        client.Close();
    }
}

2、解释

c# 提取网络

首先创建了TcpClient的实例,连接到本地的8080端口,通过GetStream方法获取网络流,然后使用Read方法从流中读取数据到字节数组中,最后将字节数组转换为字符串并输出,需要注意的是,这里的服务器端需要在相应的端口进行监听并提供数据。

四、提取网络接口信息(如本机IP地址等)

1、使用System.Net.NetworkInformation命名空间

示例代码如下:

using System.Net.NetworkInformation;
class Program
{
    static void Main()
    {
        foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
        {
            if (ni.OperationalStatus == OperationalStatus.Up)
            {
                Console.WriteLine("Interface: " + ni.Name);
                Console.WriteLine("   IP Addresses:");
                foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
                {
                    if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
                    {
                        Console.WriteLine("      " + ip.Address.ToString());
                    }
                }
            }
        }
    }
}

2、解释

通过NetworkInterface.GetAllNetworkInterfaces方法获取本机的所有网络接口,然后遍历每个接口,判断其操作状态是否为“Up”(即启用状态),对于启用的接口,获取其名称和IP地址信息,并筛选出IPv4地址进行输出。

在C#中提取网络相关内容有多种方式,可以根据具体的需求选择合适的方法来实现,无论是获取网页内容、解析HTML、从网络流中读取数据还是提取本机网络接口信息,C#都提供了丰富的类和方法来支持这些操作,使得网络编程变得更加便捷和高效。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1576387.html

本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。

(0)
未希
上一篇 2025-02-19 08:22
下一篇 2025-02-19 08:25

相关推荐

  • c# 发送网络数据

    在C#中,可以使用HttpClient类来发送网络数据,例如使用PostAsync方法。

    2025-02-25
    011
  • cdn axios

    CDN(内容分发网络)是一种分布式服务器系统,Axios 是一个基于Promise的HTTP客户端库,常用于与CDN交互以加速数据传输。

    2025-02-25
    06
  • axios cdn

    Axios 是一个基于 Promise 的 HTTP 客户端,用于浏览器和 Node.js。它没有官方提供的 CDN 版本,但可以通过打包工具如 Webpack 或直接在项目中引入 Axios 库来使用。

    2025-02-24
    015
  • c 中提取txt中的数据库

    在C语言中,要提取txt文件中的数据库信息,通常需要使用文件I/O函数(如fopen, fgets, fscanf等)来打开和读取文件内容。

    2025-02-22
    021

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

产品购买 QQ咨询 微信咨询 SEO优化
分享本页
返回顶部
云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购 >>点击进入