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

推荐订阅源

D
DataBreaches.Net
MongoDB | Blog
MongoDB | Blog
GbyAI
GbyAI
L
LangChain Blog
B
Blog
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
博客园 - 【当耐特】
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
U
Unit 42
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
有赞技术团队
有赞技术团队
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
T
The Blog of Author Tim Ferriss
爱范儿
爱范儿
小众软件
小众软件
I
InfoQ
G
Google Developers 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);
        }
    }
}