🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,阿里云专家博主,腾讯云优秀博主,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
🚀前言
HTTP请求是一个客户端向服务器发送请求的过程,用于获取或提交网络资源。它是基于TCP/IP协议完成的,包含了请求行、请求头、请求体等内容。HTTP请求通常由客户端发起,服务器对请求进行响应。在HTTP请求中,请求行描述了请求的类型、URL、版本等信息;请求头包含了一些请求的元数据,如Host、User-Agent等;请求体则是提交给服务器的数据。常见的HTTP请求类型包括GET、POST、PUT、DELETE等。常见的HTTP请求头包括Content-Type、Accept、Authorization等。HTTP请求的响应通常包含了响应码、响应头、响应体等内容,用于告诉客户端请求的处理结果。
本文主要介绍DeveloperSharp的使用,DeveloperSharp是一个研发中大型项目必备的系统平台,也是一个低代码平台。
它主要包括了如下一些功能:
- 基于Sql语句、存储过程、事务、分页的数据库操作。并几乎支持市面上所有种类的数据库。
- 图片操作。裁剪、缩放、加水印。
- http请求调用(Post与Get)
- 高效分页
- Web服务/WebApi的负载均衡
- 数据库的负载均衡,以及读写分离
- CORS跨域访问
- UUID全球通用唯一识别码
- MQ消息队列(请另行使用DeveloperSharp.RabbitMQ包)
- Redis缓存(请另行使用DeveloperSharp.Redis包)
- “异种数据库”的负载均衡
- 其他相关功能
🚀一、http请求
🔎1.GET
HTTP GET请求是HTTP协议中的一种请求方法,用于向指定服务器请求某个资源。这个请求方法是最常使用的HTTP请求方法之一,也是最简单的一种请求方法。
在HTTP GET请求中,客户端向服务器传递参数或者请求数据,服务器会将请求数据以特定的格式返回给客户端,常见的格式有HTML、XML、JSON等。
HTTP GET请求不会改变服务器上的资源状态,而且是幂等的,也就是说多次请求相同的内容,服务器的响应结果都是一致的。通常情况下,HTTP GET请求在请求的URL中会带参数,例如:http://www.example.com?param1=value1¶m2=value2。
因为HTTP GET请求的内容被置于URL的请求行中,所以请求内容的大小受到URL长度的限制。同时,由于URL中的参数信息可能会被浏览器记录在历史记录中,敏感信息最好使用POST请求发送。
HttpGET方法的详细说明如下:
using DeveloperSharp.Framework.CoreUtility; //从NuGet引用DeveloperSharp包
IUtility ui = new Utility();
string r = ui.HttpGet("http://localhost:1416/Handler1.ashx?name=kyyk&age=100");
🔎2.POST
HTTP(超文本传输协议)中的POST请求是一种向服务器提交数据的请求方法。与HTTP中的GET请求不同,POST请求将表单数据放在HTTP请求主体中,而不是将其附加在URL后面。POST请求常用于向服务器提交表单数据,如用户登录、注册等操作。POST请求可以发送任意类型的数据,包括文本、文件等。
HttpPost方法的详细说明如下:
HttpPost(Async)
声明:string HttpPost(string Url, string ParamData = "", Dictionary<string, string> HeaderDic = null, string ContentType = "application/x-www-form-urlencoded");
用途:调用Http-Post请求
参数:(1)string Url -- 调用请求的url地址
(2)string ParamData -- 提交的参数
(3)Dictionary<string, string> HeaderDic -- 存放http头的键值对
(4)string ContentType -- 请求的编码格式,通常有application/x-www-form-urlencoded(默认设置)、multipart/form-data、application/json三种形式
返回:String -- 请求结果(-107开头表示出错)
using DeveloperSharp.Framework.CoreUtility; //从NuGet引用DeveloperSharp包
using Newtonsoft.Json; //从NuGet引用Newtonsoft.Json包
public static object iSoftStoneSync(string mobile, string code, string name)
{
//创建DeveloperSharp中的IUtility工具
IUtility IU = new Utility();
//调用地址
string requestUrl = "https://prekaka.rainfn.com/kaka/api/v1/activity/uploadUserData";
//需要发送的参数
Dictionary<string, object> data = new Dictionary<string, object>
{
{ "mobile",mobile },
{ "code",code},
{ "name",name}
};
//Post形式发送请求调用
var responsesStr = IU.HttpPost(requestUrl, JsonConvert.SerializeObject(data), null, "application/json");
object reData = JsonConvert.DeserializeObject<object>(responsesStr);
return reData;
}
🔎3.自定义http请求
以下是一个对HttpClient进行封装并提供GET和POST方法:
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace HttpLibrary
{
public class HttpHelper
{
private readonly HttpClient _client;
public HttpHelper(HttpClient client)
{
_client = client;
}
public async Task<string> GetAsync(string url)
{
var response = await _client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
public async Task<string> PostAsync(string url, string data)
{
var content = new StringContent(data, Encoding.UTF8, "application/json");
var response = await _client.PostAsync(url, content);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
}
}
在上面的代码中,我们创建了一个名为HttpHelper的类,该类接受一个HttpClient实例并提供了GET和POST方法。GetAsync方法接受一个URL并返回一个字符串,PostAsync方法接受一个URL和一个表示请求体的字符串,并返回一个字符串。
接下来,可以在其他代码中使用HttpHelper来发送HTTP请求,例如:
using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace HttpDemo
{
class Program
{
static async Task Main(string[] args)
{
var client = new HttpClient();
var helper = new HttpHelper(client);
var response = await helper.GetAsync("https://www.example.com/");
Console.WriteLine(response);
var postData = "{\"username\": \"user\", \"password\": \"pass\"}";
response = await helper.PostAsync("https://www.example.com/login", postData);
Console.WriteLine(response);
}
}
}
在上面的代码中,我们创建了一个HttpClient实例和一个HttpHelper实例,并使用它们来发送GET和POST请求。我们可以看到,使用封装后的HttpHelper类可以使代码更加简明,易于维护。
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”