.NET怎么调用一个RESTful API并处理返回的JSON

使用HttpClient调用RESTful API并结合System.Text.Json处理JSON数据,通过定义匹配JSON结构的C#类,可高效实现GET/POST请求、响应解析及错误处理。

.net怎么调用一个restful api并处理返回的json

.NET 调用 RESTful API 并处理 JSON 是常见的开发任务,通常使用 HttpClient 发起请求,配合 System.Text.Json 解析返回的 JSON 数据。下面是一个清晰、实用的实现方式。

1. 使用 HttpClient 发起 GET 请求

推荐将 HttpClient 作为单例或通过依赖注入使用,避免频繁创建导致资源浪费。

示例:获取用户信息

using System.Net.Http.Json;

var httpClient = new HttpClient();try{var response = await httpClient.GetFromJsonAsync("https://www.php.cn/link/a89ab5f7e8a7f0419b5d07e00c521668");if (response != null){Console.WriteLine($"用户名: {response.Name}");}}catch (HttpRequestException e){Console.WriteLine($"请求失败: {e.Message}");}

2. 定义匹配 JSON 结构的数据类

确保 C# 类的属性与 JSON 字段对应,可使用 [JsonPropertyName] 指定映射关系。

using System.Text.Json.Serialization;

public class User{public int Id { get; set; }

[JsonPropertyName("name")]public string Name { get; set; }[JsonPropertyName("email")]public string Email { get; set; }

}

3. 处理 POST 请求并发送 JSON

使用 PostAsJsonAsync 自动序列化对象为 JSON 并提交。

var newUser = new User { Name = "张三", Email = "zhangsan@example.com" };

var response = await httpClient.PostAsJsonAsync("https://www.php.cn/link/93a819cbd635bd1505ef0f804c21cc2a", newUser);

图酷AI
图酷AI

下载即用!可以免费使用的AI图像处理工具,致力于为用户提供最先进的AI图像处理技术,让图像编辑变得简单高效。

图酷AI 106
查看详情 图酷AI

if (response.IsSuccessStatusCode){var createdUser = await response.Content.ReadFromJsonAsync();Console.WriteLine($"创建成功,ID: {createdUser.Id}");}

4. 错误处理与状态码判断

不要忽略 HTTP 状态码,合理处理 4xx 和 5xx 错误。

使用 EnsureSuccessStatusCode() 自动抛出异常(可选)或手动检查 response.IsSuccessStatusCode读取错误响应体时可用 ReadAsStringAsync()

var response = await httpClient.GetAsync("https://api.example.com/data");

if (!response.IsSuccessStatusCode){var errorContent = await response.Content.ReadAsStringAsync();Console.WriteLine($"错误: {response.StatusCode}, 内容: {errorContent}");return;}

var data = await response.Content.ReadFromJsonAsync();

基本上就这些。只要配置好类型映射,用 HttpClient + System.Text.Json 就能高效完成调用和解析。

以上就是.NET怎么调用一个RESTful API并处理返回的JSON的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1441285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月17日 17:55:53
下一篇 2025年12月17日 17:56:19

相关推荐

发表回复

登录后才能评论
关注微信