推荐一个C#开发的开源HTTP库

一款C#开发的开源HTTP库HttpLibHttpLib旨在简化HTTP请求的发起和处理。作为一个高效、易用的工具,HttpLib提供了丰富的功能,帮助开发者在C#环境中快速实现HTTP通信。

功能特点

HttpLib在设计之初,就注重高效性和易用性。以下是该库的一些主要特点:

简单易用的APIHttpLib提供了简洁直观的API,使开发者能够以最少的代码实现复杂的HTTP请求操作。无论是GET、POST还是其他HTTP方法,都能通过简单的方法调用完成。

灵活的配置选项HttpLib允许开发者灵活配置HTTP请求的各个方面,例如请求头、超时时间、代理设置等。这些配置选项使得开发者可以根据具体需求对HTTP请求进行细致的控制。

内置的错误处理机制HttpLib提供了完善的错误处理机制,能够捕获和处理各种HTTP错误和异常情况,并返回详细的错误信息,帮助开发者迅速定位和解决问题。

使用方法

1、安装包:

NuGet\Install-Package Tom.HttpLib -Version 3.0.2

2、使用示例:

创建请求:

Http.Get("https://www.google.com")Http.Post("https://www.google.com")Http.Put("https://www.google.com")Http.Delete("https://www.google.com")

添加参数:

data(new { test = "测试", test1 = "测试1" })data(new { wd = new string[] { "HttpLib", "POST数组参数" } })query(new { test = "POST下继续传递URL参数" })query(new Val("test", "POST下继续传递URL参数1"))

支持Class模型 POST Json 需要自己编程,例如:

data(new MyModel{ id = "id参数", file=new Files(@"文件地址") })
string json = "{\"JSON\":\"json data\"}";datastr(json,"application/json")
data(new Files("文件地址"))file(@"文件地址")

添加请求头

header(new { Accept = "*/*", Token = "test" })

禁止重定向:

redirect(true)

设置编码:

encoding("utf-8")

设置缓存

cache("缓存id")cache("缓存id",1)//有效期为1分钟

请求之前与请求之后

//请求之前处理before((HttpCore r) =>{
	return true; //继续请求})//请求之后处理after((HttpCore r, HttpResponseMessage msg) =>{
	return true; //继续下载数据})

注入回调获取进度

//上传requestProgres(prog => {
	Console.Write("{0}% 上传", prog);})//下载responseProgres((bytesSent, totalBytes) => {
	if (totalBytes.HasValue)
	{
		double prog = (bytesSent * 1.0) / (totalBytes.Value * 1.0);
		Console.Write("{0}% 下载", Math.Round(prog * 100.0, 1).ToString("N1"));
	}})

流式传输

Http.Get("https://test.chatgpt.com/local_doc_chat").request(msg =>{
    if (msg == null) return;
    if (msg.StartsWith("data: ")) msg = msg.Substring(5).Trim();
    System.Diagnostics.Debug.WriteLine(msg);});

全局错误捕获

Config.fail += (HttpCore core, ResultResponse result)=>{
    if (result.Exception == null) return;
    Console.Write(err.GetType());
    Console.Write(err.Message);};

应用场景

HttpLib在各种应用场景中都有广泛的应用,以下是几个典型的应用场景:

API调用:许多应用程序需要与外部API进行通信,例如获取天气信息、股票数据等。HttpLib可以简化这些API调用的实现,使开发者能够专注于业务逻辑。

Web抓取:在数据分析和数据挖掘领域,开发者常常需要抓取网页内容进行分析。HttpLib提供了方便的HTTP请求功能,可以轻松实现网页抓取。

测试与调试:开发和调试过程中,开发者需要频繁地发起HTTP请求进行测试。HttpLib的简洁API使得编写测试代码变得非常简单,从而提高开发效率。

开源地址:https://github.com/EVA-SS/HttpLib