惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
GbyAI
GbyAI
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
博客园_首页
T
Tailwind CSS Blog
aimingoo的专栏
aimingoo的专栏
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
博客园 - 司徒正美
有赞技术团队
有赞技术团队
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
MongoDB | Blog
MongoDB | Blog

博客园 - 广阔之海

Halcon的三角函数 Halcon轮廓插值方法 C# 控件选项变化事件处理 深度学习执行速度不稳定的解决方法 Halcon - 深度学习 - 目标分类 Halcon 画一个时钟 Halcon 解方程(solve_matrix) C# 使用Serilog日志框架 Halcon 生成标定板 Halcon 中的形态学 Halcon的提取中心线算法 C# 消灭switch的面向映射编程 C#中Task的用法 Halcon 通过坐标轴过滤点云数据 Halcon图像投影映射 C# 获取MySql的数据库结构信息 MySql字符集导致特殊字符保存出错问题处理 Asp.Net Core 动态生成WebApi Asp.Net Core WebApi中集成Jwt认证
C# HttpClient的使用方法总结
广阔之海 · 2022-07-26 · via 博客园 - 广阔之海

C# HttpClient的使用方法总结,直接上代码:

using System;
using System.IO;
using System.Net.Http;

namespace ConsoleApp1
{
    class Program
    {
        private static HttpClient client = new HttpClient();

        static void Main(string[] args)
        {
            client.BaseAddress = new Uri("http://localhost:8000");
            TestGet();
            TestPostByFormData();
            TestPostByJson();
            TestDownloadFile();
            TestUploadFile();
            Console.ReadLine();
        }

        /// <summary>
        /// Get请求
        /// </summary>
        static async void TestGet()
        {
            var res = await client.GetAsync("/Test/GetPerson");
            res.EnsureSuccessStatusCode();
            var rst = await res.Content.ReadAsStringAsync();
            Console.WriteLine(rst);
        }

        /// <summary>
        /// FormData形式的Post请求
        /// </summary>
        static async void TestPostByFormData()
        {
            var content = new MultipartFormDataContent();
            content.Add(new StringContent("张三"), "name");
            var res = await client.PostAsync("/Test/UpdateName", content);
            res.EnsureSuccessStatusCode();
            var rst = await res.Content.ReadAsStringAsync();
            Console.WriteLine(rst);
        }

        /// <summary>
        /// Json形式的Post请求
        /// </summary>
        static async void TestPostByJson()
        {
            var json =
@"{
  ""name"": ""李四"",
  ""mobileNumber"": ""13122233445"",
  ""address"": ""中山路""
}";
            var content = new StringContent(json);
            content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
            var res = await client.PostAsync("/Test/UpdatePerson", content);
            res.EnsureSuccessStatusCode();
            var rst = await res.Content.ReadAsStringAsync();
            Console.WriteLine(rst);
        }

        /// <summary>
        /// 下载文件
        /// </summary>
        static async void TestDownloadFile()
        {
            var res = await client.GetAsync("/Test/DownloadFile");
            res.EnsureSuccessStatusCode();
            var bytes = await res.Content.ReadAsByteArrayAsync();
            File.WriteAllBytes("D:\\test.jpg", bytes);
        }

        /// <summary>
        /// 上传文件
        /// </summary>
        static async void TestUploadFile()
        {
            var filePath = "D:\\test.png";
            var fileName = Path.GetFileName(filePath);
            var content = new MultipartFormDataContent();
            var bytes = File.ReadAllBytes(filePath);
            content.Add(new ByteArrayContent(bytes), "file", fileName);
            var res = await client.PostAsync("/Test/UploadFile", content);
            res.EnsureSuccessStatusCode();
            var rst = await res.Content.ReadAsStringAsync();
            Console.WriteLine(rst);
        }
    }
}