全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#怎么发起HTTP请求 C# HttpClient使用方法详解

推荐使用HttpClient发起HTTP请求,它线程安全、支持异步且可复用;应全局复用实例避免端口耗尽;GET用GetStringAsync,POST用StringContent发送JSON;需设置请求头、超时并手动处理响应状态与异常。

在C#中发起HTTP请求,推荐且现代的方式是使用 HttpClient。它线程安全、支持异步、可复用,是.NET Core/.NET 5+ 中的首选HTTP客户端。别再用已过时的 WebClient 或难管理的 HttpWebRequest

创建和复用 HttpClient 实例

HttpClient 设计上**不是一次性对象**,频繁 new 会导致端口耗尽(Socket Exhaustion)。正确做法是全局复用一个实例(如用 static 字段或依赖注入):

  • 在控制台或简单场景中:声明为 static readonly HttpClient
  • ASP.NET Core中:通过 services.AddHttpClient() 注册,由DI容器管理生命周期
  • 避免在方法内 using var client = new HttpClient()(除非明确短时、低频调用)

发起 GET 请求(字符串响应)

最常用场景:获取API返回的JSON或文本:

  • GetStringAsync(url) 直接得到字符串(自动处理UTF-8解码)
  • GetAsync(url) 获取 HttpResponseMessage,可检查状态码、读取内容流、自定义头等

示例:

var json = await client.GetStringAsync("https://api.example.com/users");

发送 POST 请求(JSON数据)

向API提交结构化数据,通常用JSON:

  • JsonSerializer.Serialize()(.NET Core 3.0+)或 System.Text.Json 序列化对象
  • 包装成 StringContent,指定 "application/json" 类型
  • 调用 PostAsync(url, content)

示例:

var data = new { Name = "张三", Age = 25 };
var json = JsonSerializer.Serialize(data);
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = await client.PostAsync("https://api.example.com/users", content);

设置请求头、超时与错误处理

实际项目中需关注健壮性:

  • 通过 client.DefaultRequestHeaders 添加通用头,如 AuthorizationUser-Agent
  • 超时用 client.Timeout = TimeSpan.FromSeconds(10);(注意:不能设为无限,也不能在请求中动态改)
  • 务必检查 response.IsSuccessStatusCode;非2xx响应不会自动抛异常,需手动处理
  • try/catch 捕获 HttpRequestException(网络失败、DNS错误等)

基本上就这些。掌握这四点,就能覆盖95%的HTTP调用需求。不复杂但容易忽略复用和异常细节。


# js  # json  # app  # 端口  # ai  # dns  # 状态码  # c#  # .net  # Static  # try  # catch  # 字符串  # using  # 线程  # var  # 对象  # 异步  # http  # https  # 复用  # 也不  # 就能  # 设为  # 推荐使用  # 能在  # 自定义  # 再用  # 时用  # 最常用 


相关文章: ,怎么在广州志愿者网站注册?  如何通过VPS建站实现广告与增值服务盈利?  建站主机无法访问?如何排查域名与服务器问题  头像制作网站在线制作软件,dw网页背景图像怎么设置?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  建站之星伪静态规则如何正确配置?  家具网站制作软件,家具厂怎么跑业务?  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  网站制作公司,橙子建站是合法的吗?  如何制作网站标识牌,动态网站如何制作(教程)?  定制建站哪家更专业可靠?推荐榜单揭晓  如何在建站之星绑定自定义域名?  建站之星后台密码遗忘?如何快速找回?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网页设计与网站制作内容,怎样注册网站?  如何快速登录WAP自助建站平台?  建站之星CMS五站合一模板配置与SEO优化指南  佛山企业网站制作公司有哪些,沟通100网上服务官网?  如何快速上传建站程序避免常见错误?  如何在腾讯云服务器快速搭建个人网站?  如何在云主机上快速搭建多站点网站?  建站168自助建站系统:快速模板定制与SEO优化指南  如何在万网ECS上快速搭建专属网站?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  无锡营销型网站制作公司,无锡网选车牌流程?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何用AWS免费套餐快速搭建高效网站?  如何零基础开发自助建站系统?完整教程解析  如何在IIS管理器中快速创建并配置网站?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  高端云建站费用究竟需要多少预算?  建站之星代理平台如何选择最佳方案?  制作网站的软件免费下载,免费制作app哪个平台好?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  如何通过wdcp面板快速创建网站?  制作网站外包平台,自动化接单网站有哪些?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  深圳网站制作培训,深圳哪些招聘网站比较好?  如何获取PHP WAP自助建站系统源码?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  如何快速建站并高效导出源代码?  如何选择PHP开源工具快速搭建网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何打造高效商业网站?建站目的决定转化率  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  如何通过VPS建站无需域名直接访问?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  小型网站建站如何选择虚拟主机? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。