0

0

MAUI怎么调用REST API MAUI网络请求HttpClient方法

星降

星降

发布时间:2025-12-17 13:04:03

|

843人浏览过

|

来源于php中文网

原创

在 MAUI 中调用 REST API 应使用单例注册的 HttpClient,避免频繁创建导致套接字耗尽;通过构造函数注入后,可用 GetFromJsonAsync 安全获取 JSON 数据并映射为 record 类型。

maui怎么调用rest api maui网络请求httpclient方法

在 MAUI 中调用 REST API,最常用、推荐的方式就是使用 HttpClient。它跨平台、轻量、支持异步,且与 .NET 生态深度集成。关键不是“能不能用”,而是“怎么用得安全、简洁、可维护”。

✅ 正确创建和管理 HttpClient 实例

别每次请求都 new 一个 HttpClient!这会导致套接字耗尽(尤其是 Android/iOS 上)。正确做法是:

  • MauiProgram.cs 中注册为单例服务(推荐):
builder.Services.AddSingleton();

然后在页面或 ViewModel 中通过构造函数注入使用:

public partial class MainPage : ContentPage
{
  private readonly HttpClient _httpClient;

  public MainPage(HttpClient httpClient)
  {
    _httpClient = httpClient;
    InitializeComponent();
  }
}

✅ 发起 GET 请求(获取 JSON 数据)

以请求一个用户列表为例(如 https://jsonplaceholder.typicode.com/users):

Synthesys
Synthesys

Synthesys是一家领先的AI虚拟媒体平台,用户只需点击几下鼠标就可以制作专业的AI画外音和AI视频

下载
  • 定义匹配的 C# 类(建议用记录类型):
public record User(int Id, string Name, string Email);
  • 在方法中调用:
try
{
  var users = await _httpClient.GetFromJsonAsync("https://jsonplaceholder.typicode.com/users");
  if (users != null)
    Console.WriteLine($"共加载 {users.Length} 个用户");
catch (HttpRequestException ex)
{
  Console.WriteLine($"网络请求失败:{ex.Message}");
}

✅ POST 请求(发送 JSON 数据)

比如提交登录信息:

  • 准备数据对象:
var loginData = new { username = "test", password = "123" };
  • 序列化并发送:
var json = JsonSerializer.Serialize(loginData);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var response = await _httpClient.PostAsync("https://api.example.com/login", content);
if (response.IsSuccessStatusCode)
{
  var result = await response.Content.ReadFromJsonAsync();
}

✅ 补充建议(避坑要点)

  • 设置超时:可在构造 HttpClient 时指定 TimeSpan.FromSeconds(30)
  • 添加请求头(如认证):_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
  • 处理 401/403 等状态码:用 response.StatusCode 判断,不要只依赖异常
  • 敏感接口建议封装成独立 Service 类(如 ApiService),解耦 UI 和网络逻辑

基本上就这些。不复杂但容易忽略细节——管好 HttpClient 实例、处理好异常、结构化响应模型,MAUI 的网络请求就很稳。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

417

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

76

2025.09.10

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

338

2023.08.02

c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

233

2023.09.22

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

437

2024.03.01

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

760

2023.08.22

C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

4

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 13万人学习

Java 教程
Java 教程

共578课时 | 49.7万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号