分享

C# HttpClient的几种数据格式

 Csharp小记 2024-04-06 发布于江苏

前言

    在之前的开发过程中,习惯了使用HttpWebRequest做网络访问,我一直觉得这是在C#中最好用的,不过总得与时俱进,所以在最近的开发中,基本都是直接使用了HttpClient,总体来说还是比较方便的,在使用的时候发送数据是HttpContent ,但这个类是一个抽象类,所以下面总结下HttpContent的一些常用的派生类,这样可以根据格式更方便的组织数据。







开发环境:.NET 6

开发工具:Visual Studio 2022

 









实现步骤

  1. StringContent:用于表示文本内容。它接受一个字符串作为内容,并允许你指定内容的媒体类型(例如,application/json)和字符编码。
  2. ByteArrayContent:用于表示二进制内容。它接受一个字节数组作为内容。
  3. StreamContent:用于表示从流中读取的内容。它接受一个 Stream 对象,并允许你指定内容的媒体类型和长度。
  4. FormUrlEncodedContent:用于表示表单编码的内容(即 application/x-www-form-urlencoded MIME 类型)。它接受一个键值对的集合,并生成适当的编码字符串。
  5. MultipartFormDataContent:用于表示多部分表单数据内容,通常用于文件上传。它允许你添加文本和文件部分。
  6. JsonContent:在较新的 .NET 版本中可用,用于表示 JSON 格式的内容。它接受一个对象,并使用 System.Text.Json 序列化器将其转换为 JSON 字符串。
  7. ObjectContent:在较旧的 Web API 框架中,这是 Web API 2.0 中用于表示序列化为某种媒体类型的对象的类。不过,请注意,Web API 2.0 是基于 ASP.NET MVC 的较旧版本,而在较新的 ASP.NET Core 中,推荐使用不同的方法来处理对象序列化和反序列化。
  8. PushStreamContent:这是一个高级类,允许你异步地将内容推送到输出流中。这对于需要动态生成内容的情况非常有用。
  9. 自定义实现:你还可以创建 HttpContent 的自定义派生类,以处理特定类型的内容或实现特定的行为。

实现效果

 


☛☛☛点击此处下载源码☚☚☚



    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多