C# (Net6) HttpClient 帮助类
public static string PostFromQueryToString(string url, string reqData)
{ string strUrl = new UriBuilder(url)
{
Query = reqData
}.ToString();
if (strUrl.StartsWith("https")) { System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls; } using (HttpClient httpClient = new HttpClient())
{
try
{ using (HttpResponseMessage response = httpClient.SendAsync(new HttpRequestMessage(HttpMethod.Post, strUrl)).Result)
{
string resultStr = string.Empty;
if (response.IsSuccessStatusCode)
{
Task<string> t = response.Content.ReadAsStringAsync();
resultStr = t.Result;
}
response.Dispose();
return resultStr;
}
}
catch (System.AggregateException ex)
{
return ex.Message;
}
finally
{
httpClient.Dispose();
} }
} public static string PostFromBodyToString(string strUrl, string reqData)
{
try
{ if (strUrl.StartsWith("https"))
{
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
}
string result = string.Empty;
using (HttpContent httpContent = new StringContent(System.Text.Json.JsonSerializer.Serialize(reqData), System.Text.Encoding.UTF8, "application/json"))
{
using (HttpClient httpClient = new HttpClient())
{
try
{
using (HttpResponseMessage httpRes = httpClient.PostAsync(strUrl, httpContent).Result)
{
if (httpRes.IsSuccessStatusCode)
{
result = httpRes.Content.ReadAsStringAsync().Result;
}
httpRes.Dispose();
} }
catch (Exception ex)
{
throw ex;
}
finally
{
httpClient.Dispose();
httpContent.Dispose();
} }
}
return result;
}
catch (Exception ex)
{
throw ex;
}
} public static string PostFromFormToString(string url, Dictionary<string, string> reqData)
{
try
{
string result = string.Empty;
using (HttpContent httpContent = new FormUrlEncodedContent(reqData))
{
using (HttpClient httpClient = new HttpClient())
{
try
{
using (HttpResponseMessage httpRes = httpClient.PostAsync(url, httpContent).Result)
{
if (httpRes.IsSuccessStatusCode)
{
result = httpRes.Content.ReadAsStringAsync().Result;
}
httpRes.Dispose();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
httpClient.Dispose();
httpContent.Dispose();
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
C# (Net6) HttpClient 帮助类的更多相关文章
- Java开发小技巧(五):HttpClient工具类
前言 大多数Java应用程序都会通过HTTP协议来调用接口访问各种网络资源,JDK也提供了相应的HTTP工具包,但是使用起来不够方便灵活,所以我们可以利用Apache的HttpClient来封装一个具 ...
- 基于HttpClient4.5.2实现的HttpClient工具类
1.maven依赖: <dependency> <groupId>org.apache.commons</groupId> <artifactId>co ...
- 转:轻松把玩HttpClient之封装HttpClient工具类(一)(现有网上分享中的最强大的工具类)
搜了一下网络上别人封装的HttpClient,大部分特别简单,有一些看起来比较高级,但是用起来都不怎么好用.调用关系不清楚,结构有点混乱.所以也就萌生了自己封装HttpClient工具类的想法.要做就 ...
- java HttpClient操作工具类
maven: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId> ...
- HttpClient工具类v1.7
package com.cucpay.fundswap.util; import java.io.IOException; import java.net.SocketTimeoutException ...
- Android 6.0删除Apache HttpClient相关类的解决方法
相应的官方文档如下: 上面文档的大致意思是,在Android 6.0(API 23)中,Google已经移除了Apache HttpClient相关的类,推荐使用HttpUrlConnection. ...
- 使用单例模式实现自己的HttpClient工具类
引子 在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient 来方便我们使用各种Http服务.你可以把HttpCli ...
- HttpClient工具类
HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议. ...
- Android开发实现HttpClient工具类
在Android开发中我们经常会用到网络连接功能与服务器进行数据的交互,为此Android的SDK提供了Apache的HttpClient来方便我们使用各种Http服务.你可以把HttpClient想 ...
- httpclient工具类,post请求发送json字符串参数,中文乱码处理
在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...
随机推荐
- Docker for Windows Firewall detected
安装 Docker for Windows 设置挂载磁盘的时候,出现下面这个错误: 尝试 # 把 vEthernet(DockerNAT) 的网络类型改为 private,默认是 public,还是没 ...
- SQL Server 2008语句大全完整版
--======================== --设置内存选项 --======================== --设置 min server memory 配置项 EXEC sp_co ...
- 2025年最流行的5个Python ASGI服务器及其核心特性与适用场景
以下是2025年最流行的5个Python ASGI服务器及其核心特性与适用场景: 1. Uvicorn • 核心优势: • 基于uvloop和httptools,性能远超传统WSGI服务器,支持HTT ...
- 在Linux终端管理你的密码!
大家好,我是良许. 现在是互联网时代,我们每天都要跟各种 APP .网站打交道,而这些东西基本上都需要注册才可以使用. 但是账号一多,我们自己都经常记不清对应的密码了.有些小伙伴就一把梭,所有的账号密 ...
- Flutter 2025 年产品路线图发布
每一年 Google Flutter 团队都会发布一份产品路线图,包括 Flutter 框架和 Dart 编程语言,让开发者能够了解官方团队的优先事项,并据此做出自己的计划安排. 产品路线图也会随着客 ...
- Volatile:内存可见性
一.当写一个volatile变量时,JMM会把该线程对应的本地中的共享变量值刷新到主内存. 例子: /* * 一.volatile 关键字:当多个线程进行操作共享数据时,可以保证内存中的数据可见. * ...
- 等待元素加载出来后再执行下一步的方法(execute javascript指令的用法)
上图,会员修改参数后,提示修改成功,弹出层会暂时冻结页面,导致"会员"菜单不可点击 除了使用sleep加等待时间的方法解决,本教程用"execute javascript ...
- beagle 的使用方法和参数信息
一.基本使用场景 1. 单倍型推断(Phasing) 将未分型的基因型数据(如 VCF/BCF 文件)推断为单倍型. java -jar beagle.jar \ gt=input.vcf.gz \ ...
- windows11 安装WSL2详细过程
一.什么是 WSL 2 时间来到 2017 年,事情正在起变化.微软正式发布了「适用于 Linux 的 Windows 子系统」,即人们熟知的 Windows Subsystem for Linux, ...
- HarmonyOS Next开发教程之地图定位
今天分享一下在鸿蒙开发中的地图定位问题,也就是在地图中如何定位自己所在的位置. 关于如何加载显示地图在之前的文章已经详细介绍过,有问题的友友可以点击查看: HarmonyOS NEXT实战教程-实现K ...