当前位置: 首页 > article >正文

.netCore的winform程序如何调用webapi

1、创建一个HttpClientHelper类声明HttpClient只读

public static class HttpClientHelper
    {
        private static readonly HttpClient client = new HttpClient();

        public static async Task<HttpResponseMessage> PostAsync(string url, HttpContent content)
        {
            return await client.PostAsync(url, content);
        }

    }

2、调用方法,此处有三个参数其中一个为byte[]

 public async Task<string> CallWebApiAsync(string url)
        {
            byte[] filecontent = FileContent(textBox2.Text);
            string str = Convert.ToBase64String(filecontent);
            var data = new { dataCode = textBox3.Text, dataContent = str, pwd= textBox4.Text }; // 你的数据模型
            var json = JsonConvert.SerializeObject(data); // 将对象序列化为JSON字符串
            var content = new StringContent(json, Encoding.UTF8, "application/json");
            string responseBody = "";
            try
            {
                var response = await HttpClientHelper.PostAsync(url, content);
                response.EnsureSuccessStatusCode(); // 确保响应是成功的状态码(200-299)
                responseBody = await response.Content.ReadAsStringAsync(); // 获取响应内容
                //Console.WriteLine(responseBody); // 处理响应内容
                
            }
            catch (HttpRequestException ex)
            {
                //MessageBox.Show($"Error: {ex.Message}");
                //Console.WriteLine(e.Message); // 处理异常情况
                responseBody= ex.Message;
            }
            return responseBody;
        }

3、调用上边的方法

 private async void button1_Click(object sender, EventArgs e)

{

await CallWebApiAsync(textBox1.Text);

}


http://www.kler.cn/a/613396.html

相关文章:

  • 树莓派超全系列文档--(11)RaspberryOS上使用 Python控制GPIO
  • 全面解析PRN文件:从原理到可视化的完整指南 【标签打印】
  • 1.1-站点差异\源码差异\数据存储差异\MVC模型
  • python每日十题(13)
  • 使用Django创建项目及介绍
  • knowledge-vscode中配置java环境(JDK-8下载,配置 Maven 并创建项目)
  • 从系统架构、API对接核心技术、业务场景设计及实战案例四个维度,深度解析1688代采系统
  • 微服务中的服务发现与注册中心
  • Rabbitmq消息被消费时抛异常,进入Unacked 状态,进而导致消费者不断尝试消费(下)
  • 实现类今日头条主界面:ViewPager与TabLayout深度整合
  • 【空间变换】欧拉角与四元数
  • SQL的核心基础语法 | 快速入门MySQL
  • 【算法手记6】NC1 大数加法 NC40 链表相加(二) NC10 大数乘法
  • java开发环境本地全套
  • Linux-NFS服务的故障排查与优化
  • DATEDIFF 函数
  • 蓝桥Python真题——扫雷
  • 宝塔SSL申请Let‘s Encrypt提示“验证信息构造失败!{}“
  • 【Linux】进程控制和Shell的简易实现
  • 深入剖析Redis分布式锁:Redlock算法源码解读与实战