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

推荐订阅源

罗磊的独立博客
Apple Machine Learning Research
Apple Machine Learning Research
The Cloudflare Blog
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 叶小钗
博客园 - 聂微东
阮一峰的网络日志
阮一峰的网络日志
腾讯CDC
博客园 - 三生石上(FineUI控件)
V
V2EX
有赞技术团队
有赞技术团队
V
Visual Studio Blog
小众软件
小众软件
Jina AI
Jina AI
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - Franky
量子位
T
Tailwind CSS Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
P
Palo Alto Networks Blog
Cisco Talos Blog
Cisco Talos Blog
I
Intezer
Project Zero
Project Zero
A
Arctic Wolf
P
Privacy International News Feed
V
Vulnerabilities – Threatpost
L
Lohrmann on Cybersecurity
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Tor Project blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
S
Security @ Cisco Blogs
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Google DeepMind News
Google DeepMind News
N
News and Events Feed by Topic
TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 热门话题
G
GRAHAM CLULEY
Help Net Security
Help Net Security
N
News | PayPal Newsroom
W
WeLiveSecurity
G
Google Developers Blog
Microsoft Security Blog
Microsoft Security Blog
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
C
Check Point 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);
        }
    }
}