当前位置: 首页 > article >正文

.net HttpClient封装

using Newtonsoft.Json;
/// <summary>
/// Http 请求工具类
/// </summary>
public class HttpClientUtils
{
/// <summary>
/// 请求的域名
/// </summary>
public static string BaseUrl { get; set; } = "http://localhost:5016";
/// <summary>
/// 发送Get请求
/// </summary>
/// <param name="url">请求地址(包含请求的参数信息)</param>
/// <typeparam name="T"></typeparam>
/// <returns></returns>
public static T? Get<T>(string url)
{
using HttpClient client = new HttpClient();
if (String.IsNullOrWhiteSpace(BaseUrl))
{
throw new Exception("请先设置BaseUrl请求的域名");
}
// 设置
client.BaseAddress = new Uri(BaseUrl);
// 创建请求对象
var request = new HttpRequestMessage(HttpMethod.Get,url);
var response = client.Send(request); // 发送请求,得到响应对象
var json = response.Content.ReadAsStringAsync().Result;
if (string.IsNullOrWhiteSpace(json))
{
return default;
}
return JsonConvert.DeserializeObject<T>(json);
}
/// <summary>
/// 发送Post请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="parms">请求参数</param>
/// <typeparam name="T">返回值类型</typeparam>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static T? Post<T>(string url, object parms)
{
using HttpClient client = new HttpClient();
if (String.IsNullOrWhiteSpace(BaseUrl))
{
throw new Exception("请先设置BaseUrl请求的域名");
}
// 设置
client.BaseAddress = new Uri(BaseUrl);
using HttpContent httpContent = new
StringContent(JsonConvert.SerializeObject(parms),
Encoding.UTF8,"application/json");
HttpResponseMessage response = client.PostAsync(url,
httpContent).Result;
var result = response.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<T>(result);
}
}

.net HttpClient封装


http://www.kler.cn/a/148924.html

相关文章:

  • React Hooks在现代前端开发中的应用
  • 深度学习中的感受野:从基础概念到多层次特征提取
  • neo4j desktop基本入门
  • css:盒子模型
  • 卓胜微嵌入式面试题及参考答案(2万字长文)
  • 设计模式之责任链模式(Chain Of Responsibility)
  • 项目:基于UDP的网络聊天室
  • WordPress自动采集伪原创发布工具
  • Docker 概述与安装
  • 基于YOLO模型建筑工地个人防护设备目标检测
  • 只会在终端使用Python运行代码?这些高级用法了解了解
  • 基于Python+OpenCV+dlib+Tensorflow深度学习的人脸表情识别系统
  • 【数据库】聊聊一颗B+树 可以存储多少数据
  • SpringBoot+VUE3前后端分离-【支付宝支付】
  • k8s中pod的hostport端口突然无法访问故障处理
  • Scrum敏捷开发流程及支撑工具
  • 【深入解析git和gdb:版本控制与调试利器的终极指南】
  • Linux 基础-常用的命令和搭建 Java 部署环境
  • 使用vue脚手架创建vue项目
  • Linux 安装 Minio 配置 HTTPS
  • LangChain 14 SequencialChain链接不同的组件
  • 19 Go的时间日期
  • c 数组简介
  • 【c++|SDL】开始使用之---demo
  • Peter算法小课堂—高精度减法
  • <HarmonyOS第一课>从简单的页面开始 【课后考核】