在之前的开发过程中,习惯了使用HttpWebRequest 做网络访问,我一直觉得这是在C#中最好用的,不过总得与时俱进,所以在最近的开发中,基本都是直接使用了HttpClient ,总体来说还是比较方便的,在使用的时候发送数据是HttpContent ,但这个类是一个抽象类,所以下面总结下HttpContent 的一些常用的派生类,这样可以根据格式更方便的组织数据。 开发环境:.NET 6 开发工具:Visual Studio 2022 StringContent :用于表示文本内容。它接受一个字符串作为内容,并允许你指定内容的媒体类型(例如,application/json)和字符编码。ByteArrayContent :用于表示二进制内容。它接受一个字节数组作为内容。StreamContent :用于表示从流中读取的内容。它接受一个 Stream 对象,并允许你指定内容的媒体类型和长度。FormUrlEncodedContent :用于表示表单编码的内容(即 application/x-www-form-urlencoded MIME 类型)。它接受一个键值对的集合,并生成适当的编码字符串。MultipartFormDataContent :用于表示多部分表单数据内容,通常用于文件上传。它允许你添加文本和文件部分。JsonContent :在较新的 .NET 版本中可用,用于表示 JSON 格式的内容。它接受一个对象,并使用 System.Text.Json 序列化器将其转换为 JSON 字符串。ObjectContent :在较旧的 Web API 框架中,这是 Web API 2.0 中用于表示序列化为某种媒体类型的对象的类。不过,请注意,Web API 2.0 是基于 ASP.NET MVC 的较旧版本,而在较新的 ASP.NET Core 中,推荐使用不同的方法来处理对象序列化和反序列化。PushStreamContent :这是一个高级类,允许你异步地将内容推送到输出流中。这对于需要动态生成内容的情况非常有用。自定义实现 :你还可以创建 HttpContent 的自定义派生类,以处理特定类型的内容或实现特定的行为。
|