介绍

HttpLib(C# .NET Framework)简单介绍

一、库简介

HttpLib(作者 James Thorne)是基于 Apache 2.0 协议 的 .NET HTTP 请求辅助库,简化异步网络请求,支持文件上传、网页下载,采用链式调用风格。

注意:不要和C++同名库 httplibcom.daniyarkaliyev.httplib 混淆,必须安装第一个:HttpLib

如果没有安装,下面代码会找不到Http

二、安装步骤

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

三、引入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 网页:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注