HttpLib(C# .NET Framework)简单介绍
一、库简介
HttpLib(作者 James Thorne)是基于 Apache 2.0 协议 的 .NET HTTP 请求辅助库,简化异步网络请求,支持文件上传、网页下载,采用链式调用风格。
注意:不要和C++同名库
httplib、com.daniyarkaliyev.httplib混淆,必须安装第一个:HttpLib
如果没有安装,下面代码会找不到Http

二、安装步骤
- 在解决方案资源管理器右键项目 → 管理NuGet程序包
- 切换到【浏览】,搜索
HttpLib - 选择作者为
James Thorne (@j6mes)的包,点击安装(版本 v2.0.16.94) - 等待输出窗口提示安装完成

三、引入HttpLib
1. 缺少命名空间引用
必须在代码最顶部加入:
using HttpLib;
没有这一行,Http.Get() 会直接报红色波浪线。
通常使用Nuget管理器安装后,会自动引入到项目中的,不需要读者再次引入。
2. 示例
using System;
using HttpLib; // 关键引用
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Http.Get("https://archive.codeplex.com/?p=httplib")
.OnSuccess(result =>
{
Console.Write(result);
})
.Go();
Console.ReadKey();
}
}
}Code language: JavaScript (javascript)
有些网站可能禁止抓包,可能会报错,也可能网站无法访问了。
An unhandled exception of type “System.Net.WebException” occurred in JumpKick.HttpLib.dll
如果出现上面的错误,读者可能需要用浏览器查看网页是否可以访问,如果不能访问,请修改成其他郁域名。
四、代码语法说明
Http.Get("url") // 创建GET请求
.OnSuccess(result => {}) // 请求成功回调,result = 网页返回文本
.Go(); // 启动异步执行请求Code language: JavaScript (javascript)
.Go():启动异步网络请求,不会阻塞主线程- 拓展:还支持
.OnError()捕获网络异常
Http.Get("https://example.com")
.OnSuccess(res=>Console.WriteLine(res))
.OnError(ex=>Console.WriteLine("请求失败:"+ex.Message))
.Go();Code language: JavaScript (javascript)
示例里的测试地址 已失效,运行会请求失败,建议更换测试地址:
https://httpbin.org/html
六、完整例子
using System;
using HttpLib;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// 使用可用的测试网址
Http.Get("https://httpbin.org/html")
.OnSuccess(result =>
{
Console.WriteLine("请求成功:");
Console.Write(result);
})
.OnError(err =>
{
Console.WriteLine("请求异常:" + err.Message);
})
.Go();
Console.WriteLine("异步请求已发起,按任意键退出");
Console.ReadKey();
}
}
}Code language: JavaScript (javascript)
如果你复制代码加上using HttpLib;后依然标红,我可以继续教你清理NuGet缓存、重装包的步骤。
注意
httpbin.org 是开源免费 HTTP 测试服务网站,由 Python requests 库作者开发,专门用来调试 HTTP 请求。
/html 是它其中一个接口路径。
访问效果
打开链接会直接返回一段基础 HTML 网页:
Next: GET 请求