【朝夕教育】2023年11月 .NET CORE工具案例-DeveloperSharp(http请求)

在这里插入图片描述

🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,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&param2=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请求
参数:(1string Url             --  调用请求的url地址
     (2string ParamData      --  提交的参数
     (3)Dictionary<string, string> HeaderDic  --  存放http头的键值对
     (4string 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元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。

我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。

如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。

在这里插入图片描述

再次感谢您的阅读和支持!

最诚挚的问候, “愚公搬代码”

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值