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

.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);

}

相关文章:

  • 软考笔记——软件工程基础知识
  • 未来技术的发展趋势与影响分析
  • dji飞行控制
  • AOA(到达角度)与TOA(到达时间)两个技术的混合定位,MATLAB例程,自适应基站数量,三维空间下的运动轨迹,滤波使用UKF(无迹卡尔曼滤波)
  • 7.5 窗体事件
  • [学成在线]07-视频转码
  • 链表-LeetCode
  • viewModelScope.launch(Dispatchers.IO)和withContext(Dispatchers.IO)
  • 如何用 Postman 发送 POST 请求?
  • 从入门到精通:SQL注入防御与攻防实战——红队如何突破,蓝队如何应对!
  • collections.Counter()介绍——快速统计元素出现的次数
  • python蓝桥杯刷题的重难点知识笔记
  • 如何处理不同输入类型(例如邮箱、电话号码)的验证?
  • 消息队列性能比拼: Kafka vs RabbitMQ
  • 26考研——栈、队列和数组_栈(3)
  • 26考研——树与二叉树_树、森林(5)
  • 学习爬虫的第二天——分页爬取并存入表中
  • AI Agent开发大全第十二课-向量数据库Qdrant使用全教程
  • 自然语言处理入门5——LSTM
  • VMware网络适配器
  • 病愈出院、跳大神消灾也办酒,新华每日电讯:农村滥办酒席何时休
  • 人民网三评“网络烂梗”:莫让低级趣味围猎青少年
  • 陕西宁强县委书记李宽任汉中市副市长
  • 深圳拟出让3宗居住用地,共计用地面积6.77公顷
  • 多条跨境铁路加速推进,谁是下一个“超级枢纽”?
  • “异常”只停留在医院里,用艺术为“泡泡宝贝”加油