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

推荐订阅源

博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
S
SegmentFault 最新的问题
小众软件
小众软件
T
Tailwind CSS Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
人人都是产品经理
人人都是产品经理
V
Visual Studio Blog
罗磊的独立博客
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Jina AI
Jina AI
量子位
云风的 BLOG
云风的 BLOG
Recent Announcements
Recent Announcements
Hugging Face - Blog
Hugging Face - Blog
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
美团技术团队

博客园 - 丹心石

数据字节位改变 锁定鼠标光标到指定屏幕 Avalonia 避坑经验总结 Avalonia 窗口与配置 Avalonia 程序打包成Linux平台的运行程序 数据处理与转换 信号与槽 Qt 串口通信 Avalonia 设计时DataContext数据山下文和WPF设计时DataContext数据上下文 Avalonia Ursa 使用 Avalonia-消息对话框 Avalonia-数据绑定 Avalonia-样式 阿里图标库iconfont 在Avalonia 中的使用 Avalonia MVVM Avlonia 自定义控件 Sqlite EF For ConsoleCore Sqlite EF CodeFirst For WPF win10 环境变量不可编辑 WCF-双工通讯 MahMetro 框架学习 由于缺少调试目标“xxx”Visual Studio 无法开始调试。或者响应地设置outputpath和AssemblyName 属性 WPF 应用程序本地化-资源文件方式 FastReport 行高设置实现行高随内容自动变化
WPF 访问WebAPI
丹心石 · 2026-07-09 · via 博客园 - 丹心石

访问WebAPI 步骤和方法:

1. 通过HttpClient 访问

using System.Net.Http;
using NewtonSoft.Json;
using System.Collections.ObjectModel;

private static readonly HttpClient httpClient=new HttpClient();
private MainViewModel main=new MainModel();

try
{
//1. 发送异步Get请求
string apiUrl="http://localhost:44372/api/Product":
HttpResponseMessage response=await httpClient.GetAsync(apiUrl);
//2.确保请求成功
if(response.IsSuccessStatusCode)
{
   //返回JSON字符串
   string jsonResponse=await response.Content.ReadAsStringAsync();
   //4.将JSON串序列化
   this.Dispatcher.Invoke(()=>{
      main.Products=JsonConvert.DeserializeObject<ObservableCollection<Product>>(jsonResponse);
   });
   
}
}
catch(HttpRequestException ex)
{
   MessageBox.Show($"状态码:{response.StatusCode}");

}

2. 处理Post 请求发送数据

using System.Net.Http;
using Newtonsoft.Json;

private async Task PostDataToApi(object dataToSend)
{
   string apiUrl="https://(localhost:44372/api/product";
   try
   {
       string jsonData=JsonConvert.SerializeObject(dataToSend);
       var content=new StringContent(jsonData,Encoding.UTF8,"application/json");
       HttpResponseMessage response= await httpClient.PostAsync(apiUrl,content);
       if(response.IsSuccessStatusCode)
       {
          MessageBox.Show("发送成功");
       }
   }
   catch(Exception ex)
   {
      MessageBox.Show($"发送失败:{ex.Message}");
   }
}