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请求报文含中文 ...
随机推荐
- DevOps的工作岗位的要求
## 为什么需要DevOps 不是每个人都能理解可靠的版本管理和牢固的构建系统的重要性. 也不是任何人能使得软件的发布达到可靠性,可重复性和可审计的高标准.Devops的职责就是将软件的构建和发布的流 ...
- 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!
前言 相信很多同学都应该用过 Everything 这个实用的 Windows 文件搜索神器吧,今天大姚给大家分享一款让 Everything 更加如虎添翼的 .NET 开源辅助工具:Everythi ...
- AI实战:Text_To_SQL+Prompt+数据库(MySQL)+MCP
一.Text-to-SQL应用概述 什么是Text-to-SQL?Text-to-SQL也称为NL2SQL,是将自然语言查询转换为可在关系数据库上执行的SQL查询的技术. 其核心目标是准确捕捉并反映用 ...
- Web前端入门第 37 问:多图细说 CSS grid 网格布局(二)子元素相关属性
学习本文之前,建议先学习上一篇了解父元素的相关属性. 前文对 grid 网格布局中父元素容器相关的 CSS 属性做了详细介绍,本篇将继续学习子元素相关的 CSS 属性. 网格布局的一大波样式属性,父元 ...
- MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
MySQL 中 count(*).count(1) 和 count(字段名) 的区别 在 MySQL 中,COUNT() 函数用于统计记录数.虽然 COUNT(*).COUNT(1) 和 COUNT( ...
- 抽象方法(abstract)、虚方法(virtual)及接口(interface)
抽象方法(abstract).虚方法(virtual)及接口(interface) 抽象方法(abstract) 定义:abstract关键词标记的方法--抽象方法 特征: 抽象方法只能定义在抽象类里 ...
- Flutter视频压缩技术:如何在应用中优化视频文件的质量和大小?
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...
- 基于Gazebo/ROS2的智能仓储机器人强化学习控制系统开发全攻略
引言:仓储自动化与强化学习的碰撞 在工业4.0浪潮下,智能仓储系统正经历从传统AGV到自主决策机器人的跨越式发展.本文将深入解析如何利用Gazebo仿真平台与ROS2框架,结合Stable-Basel ...
- TVM:visitor设计模式
visitor模式,因为它在编译器的框架中应用的广泛,在TVM中也是无处不在. visitor模式介绍 Visitor(访问者)模式的定义:将作用于某种数据结构中的各元素的操作分离出来封装成独立的类, ...
- ISCC2025破阵夺旗赛三阶段Misc详解 By Alexander
ISCC2025破阵夺旗赛三阶段Misc详解 By Alexander 写在前面:十八天吃石终于结束了,第一次就让我见到了这个比赛有多么的构式,平台是构式的,睡一觉就1000解了,全是对flag的渴望 ...