C# WebClient,HttpClient,WebRequest

复制代码

复制代码
 static  void WebClientDemo()
        {
            string url = "https://www.cnblogs.com/Fred1987/p/11843418.html";
            WebClient wc = new WebClient();
            string content=wc.DownloadString(url);
            Console.WriteLine(content);
        }

        static async void HttpClientDemo()
        {
            try
            {
                string url = "https://www.cnblogs.com/Fred1987/p/11843418.html";
                using (HttpClient httpClient = new HttpClient())
                {
                    HttpResponseMessage httpResponse = await httpClient.GetAsync(url);
                    httpResponse.EnsureSuccessStatusCode();
                    string responseBody = await httpResponse.Content.ReadAsStringAsync();
                    Console.WriteLine(responseBody);
                }
            }
            catch(HttpRequestException ex)
            {
                Console.WriteLine(ex.Message);
            }                         
        }

        static void WebRequestDemo()
        {
            string url = "https://www.cnblogs.com/Fred1987/p/11843418.html";
            WebRequest webRequest = WebRequest.Create(url);
            using (WebResponse webResponse = webRequest.GetResponse())
            {
                Stream responseStream = webResponse.GetResponseStream();
                StreamReader streamReader = new StreamReader(responseStream);
                string result = streamReader.ReadToEnd();
                Console.WriteLine(result);
            }                       
        }
复制代码

 

static void Main(string[] args)
        {
            WebRequestAsyncDemo();
            Console.ReadLine();
        }

        static void WebRequestAsyncDemo()
        {
            string url = "https://docs.microsoft.com/en-us/dotnet/api/system.string?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev16.query%3FappId%3DDev16IDEF1%26l%3DEN-US%26k%3Dk(System.String);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.8);k(DevLang-csharp)%26rd%3Dtrue&view=netframework-4.8";

            Task task = WriteWebRequestAsync(url);
            try
            {
                while(!task.Wait(100))
                {
                    Console.Write(".");
                }
            }
            catch(AggregateException aes)
            {
                aes = aes.Flatten();
                try
                {
                    aes.Handle(x =>
                    {
                        Console.WriteLine(x.Message);
                        return true;
                    });
                }
                catch(WebException)
                {

                }
                catch(IOException)
                {

                }
                catch(NotSupportedException)
                {

                }
            }         
        }

        static Task WriteWebRequestAsync(string url)
        {
            StreamReader reader = null;
            WebRequest request = WebRequest.Create(url);
            Task task = request.GetResponseAsync().ContinueWith(x =>
            {
                WebResponse response = x.Result;
                reader = new StreamReader(response.GetResponseStream());
                return reader.ReadToEndAsync();
            }).Unwrap().ContinueWith(x =>
            {
                if (reader != null)
                {
                    reader.Dispose();
                }
                string text = x.Result;
                Console.WriteLine(text);
            });
            return task;
        }
复制代码
复制代码

static void Main(string[] args)
{
WebRequestDemoAsync();
Console.ReadLine();
}

static async void WebRequestDemoAsync()
{
string url = "https://docs.microsoft.com/en-us/dotnet/api/system.string?f1url=https%3A%2F%2Fmsdn.microsoft.com%2Fquery%2Fdev16.query%3FappId%3DDev16IDEF1%26l%3DEN-US%26k%3Dk(System.String);k(TargetFrameworkMoniker-.NETFramework,Version%3Dv4.8);k(DevLang-csharp)%26rd%3Dtrue&view=netframework-4.8";
WebRequest request = WebRequest.Create(url);
WebResponse response =await request.GetResponseAsync();
using(StreamReader reader=new StreamReader(response.GetResponseStream()))
{
string text = await reader.ReadToEndAsync();
Console.WriteLine(text);
}
}

复制代码

 

posted @   FredGrit  阅读(266)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示