.net core精彩实例分享 -- 网络编程

文章目录

  • 介绍
  • 具体案例
    • 从Web服务器上下载图片
    • 使用HttpClient类向Web服务器提交数据
  • 总结

介绍

随着.net core越来越流行,对.net core 基础知识的了解,实际应用等相关的知识也应该有所了解。所以就有了这篇文章,案例都是来自阅读的书籍,或者实际工作中感觉比较有用的应用。分享亦总结。

本文主要介绍 .net core 相关的网络编程案例。

具体案例

从Web服务器上下载图片

【导语】

运行实例后,同键盘输入 Web 服务器上图片的 URL,按下 Enter 键后,应用程序会把图片下载到本地并保存到文中。

本实例使用了 HttpWebRequest 类和 HttpWebResponse 类来完成图片下载,这两个类一般是成对使用的。由 HttpWebRequest 对象向服务器发起请求,若服务器回应则返回一个 HttpWebResponse 对象,通过 HttpWebResponse 对象可以以流的方式读取来自 Web 服务器的数据。如果要将数据上传到 Web 服务器,应该使用从 HttpWebRequest 对象中获得的流对象。总结为一句话就是:HttpWebRequest 对象用于向服务器写数据,HttpWebResponse 对象用于读取来自服务器的数据。

【操作流程】

步骤1:新建控制台应用程序项目。

步骤2:获取键盘输入的图片 URL

Console.WriteLine("请输入图片的 URL:");
string picUrl = Console.ReadLine();

步骤3:创建 HttpWebRequest 实例。该类没有公共的构造函数,需要通过调用 WebRequestCreate 方法或者 CreateHttp 方法来获取 HttpWebRequest 实例的引用。

HttpWebRequest request = WebRequest.CreateHttp(picUrl);

步骤4:设置访问方式为 GET

request.Method = "GET";

步骤5:向 Web 服务器发起请求,并获取 HTTP 的相应消息。

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

步骤6:读取 Web 服务器响应的数据,并写入文件。

using(Stream respStream = response.GetResponseStream())
{
    // 存入文件
    using(FileStream fs = new FileStream("down.jpg", FileMode.Create))
    {
        respStream.CopyTo(fs);
    }
}

步骤7:运行应用程序项目,输入图片 URL,然后按下 Enter 键,图片即被下载到本地文件。

使用HttpClient类向Web服务器提交数据

【导语】

HttpClient 类对 HTTP 通信中的常用操作进行了封装,为每一种请求定义了对应的方法,具体方法如下。

(1)GetAsync 方法:以 GET 方式发送 HTTP 请求。

(2)PostAsync 方法:以 POST 方式发送 HTTP 请求。

(3)PutAsync 方法:以 PUT 方式发送 HTTP 请求。

(4)DeleteAsync 方法:以 DELETE 方式发送 HTTP 请求。

(5)PatchAsync 方法:以 PATCH 方式发送 HTTP 请求。

其中,最常用的方法是 GetAsyncPostAsync 两个方法。此外,HttpClient 类还提供了 SendAsync 方法,此方法比较灵活,在发送 HTTP 请求前可以做更多的配置。

要提交的数据正常将由 HttpClient 类保证,该类是抽象类,需要根据实际要提交内容的格式来选择,例如,ByteArrayContent 类用于包装字节数组,StringContent 类用于包装字符串内容,若希望以流的形式提交数据,还可以用 StreamContent 类。

本实例将演示如果使用 HttpClient 类以 POST 方式向Web服务器提交字符串数据。

【操作流程】

步骤1:创建 HttpClient 实例。

using (HttpClient client = new HttpClient())
{
    ...
}

步骤2:包装要发送的数据内容。

StringContent content = new StringContent("小李", System.Text.Encoding.UTF8);

本例要发送的是字符串内容,因此选用 StringContent 类进行包装。

步骤3:向服务器发起请求,方式为 HTTP - POST

string url = "<目标URL>";
HttpResponseMessage response = await client.PostAsync(url, content);

上述代码中,请将<目标URL>替换为实际的测试地址。

步骤4:调用 PostAsync 方法后,异步返回 HttpResponseMessage 对象,表示服务器回应的消息,从 HttpResponseMessage 对象的 Content 属性中可以得到服务器返回的数据正文。

string respmsg = await response.Content.ReadAsStringAsync();
Console.WriteLine($"提交成功,服务器回应消息:{respmsg}");

总结

本文到这里就结束了,下一篇将介绍反射与Composition的知识案例。

你可能感兴趣的:(ASP.NET,CORE,.net,core)