0

0

C#如何发送HTTP请求 C#使用HttpClient发起GET和POST请求

畫卷琴夢

畫卷琴夢

发布时间:2025-11-05 14:00:02

|

759人浏览过

|

来源于php中文网

原创

答案:C#中常用HttpClient发送HTTP请求,支持异步操作,需重用实例避免资源泄漏。1. 创建HttpClient实例并设置默认请求头;2. 用GetStringAsync或GetAsync发送GET请求获取数据,后者可获取完整响应信息;3. 用PostAsync发送POST请求,构造JSON格式的StringContent内容,可结合JsonSerializer序列化对象;4. 注意事项包括重用客户端、使用IHttpClientFactory、处理异常、设置超时和及时释放资源。其他方法如PUT、DELETE类似。

c#如何发送http请求 c#使用httpclient发起get和post请求

在C#中发送HTTP请求最常用的方式是使用 HttpClient 类,它位于 System.Net.Http 命名空间下,支持异步操作,适合现代应用开发。下面介绍如何用 HttpClient 发起 GET 和 POST 请求。

1. 创建 HttpClient 实例

推荐将 HttpClient 作为单例或在 using 语句中使用,避免资源泄漏。在实际项目中,建议通过依赖注入管理 HttpClient。

var client = new HttpClient(); client.DefaultRequestHeaders.UserAgent.ParseAdd("MyApp/1.0");

2. 发送 GET 请求

GET 请求用于从服务器获取数据。使用 GetStringAsyncGetAsync 方法发起请求。

try { string response = await client.GetStringAsync("https://jsonplaceholder.typicode.com/posts/1"); Console.WriteLine(response); } catch (HttpRequestException e) { Console.WriteLine($"请求出错: {e.Message}"); }

如果需要更完整的响应信息(如状态码、响应头),可以使用 GetAsync:

MusicAI
MusicAI

AI音乐生成工具

下载
var response = await client.GetAsync("https://jsonplaceholder.typicode.com/posts/1"); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); Console.WriteLine(content); }

3. 发送 POST 请求

POST 请求通常用于向服务器提交数据,比如创建资源。需要构造请求内容,常用的是 JSON 格式。

// 要发送的数据 string jsonData = "{\"title\": \"新文章\", \"body\": \"这是内容\", \"userId\": 1}"; // 包装成 StringContent var content = new StringContent(jsonData, System.Text.Encoding.UTF8, "application/json"); // 发送请求 var response = await client.PostAsync("https://jsonplaceholder.typicode.com/posts", content); if (response.IsSuccessStatusCode) { string result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }

也可以使用 JsonSerializer(.NET Core/.NET 5+)简化对象序列化:

using System.Text.Json; var postData = new { title = "新文章", body = "这是内容", userId = 1 }; var json = JsonSerializer.Serialize(postData); var content = new StringContent(json, Encoding.UTF8, "application/json"); var response = await client.PostAsync("https://jsonplaceholder.typicode.com/posts", content);

4. 注意事项和最佳实践

  • HttpClient 应重用,不要每次请求都 new 一个,否则可能引发 socket 耗尽问题。
  • 在 ASP.NET Core 中,推荐使用 IHttpClientFactory 创建客户端。
  • 始终处理异常,如网络错误、超时、JSON 解析失败等。
  • 设置超时时间:client.Timeout = TimeSpan.FromSeconds(30);
  • 释放资源:如果手动创建,建议用 using 或 Dispose。
基本上就这些。掌握 GET 和 POST 的基本用法后,其他如 PUT、DELETE 也类似,只需调用 PutAsync、DeleteAsync 即可。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

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

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

457

2023.08.07

json是什么
json是什么

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

549

2023.08.23

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

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

337

2023.10.13

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

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

82

2025.09.10

string转int
string转int

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

1051

2023.08.02

if什么意思
if什么意思

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

847

2023.08.22

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

287

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

222

2023.12.29

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

热门下载

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

精品课程

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

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