Tom.HttpLib
2.0.4
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Tom.HttpLib --version 2.0.4
NuGet\Install-Package Tom.HttpLib -Version 2.0.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Tom.HttpLib" Version="2.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tom.HttpLib --version 2.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Tom.HttpLib, 2.0.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Tom.HttpLib as a Cake Addin
#addin nuget:?package=Tom.HttpLib&version=2.0.4
// Install Tom.HttpLib as a Cake Tool
#tool nuget:?package=Tom.HttpLib&version=2.0.4
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
HttpLib 便捷的Http库
如果你喜欢 HttpLib 项目,请为本项点亮一颗星 ⭐!
<a href="https://www.nuget.org/packages/Tom.HttpLib/" target="_blank"> <img src="https://img.shields.io/nuget/vpre/tom.httpLib?style=flat-square&logo=nuget&label=HttpLib"> <img src="https://img.shields.io/nuget/dt/Tom.HttpLib?style=flat-square"> </a>
作者 | Tom |
---|---|
17379620 |
目录
示例
创建请求
Http.Get("https://www.baidu.com")
Http.Post("https://www.baidu.com")
Http.Put("https://www.baidu.com")
Http.Delete("https://www.baidu.com")
添加参数
GET请求参数会自动注入到地址
data(new { test1 = "测试1", test2 = "测试2" })
data(new { params_ = "关键字参数" })
data(new { wd = new string[] { "GitHub - Haku-Men HttpLib", "POST数组参数" } })
query(new { test = "POST下继续传递URL参数" })
query(new Val("test", "POST下继续传递URL参数1"))
data(new Val("test1", "测试1"), new Val("test2", "测试2"))
data(new List<Val> {
new Val("test1","测试1"),
new Val("test2","测试2")
})
data(new Files("文件地址"))
添加请求头
header(new { accept = "*/*", userAgent = "Chrome" })
header(new Val("accept","*/*"), new Val("user-agent","Chrome"))
设置代理
proxy("127.0.0.1",1000)
启用重定向
默认禁止
redirect(true)
设置超时时长
毫秒
(默认不超时)
timeout(3000)
设置编码
默认
utf-8
encoding('utf-8')
请求之前处理
before((WebResult r) =>
{
return true; //继续请求
})
注入回调获取进度
字节大小
上传
requestProgres((bytesSent, totalBytes) => {
double prog = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 上传", Math.Round(prog * 100.0, 1).ToString("N1"));
})
下载
responseProgres((bytesSent, totalBytes) => {
if (totalBytes > 0)
{
double prog = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 下载", Math.Round(prog * 100.0, 1).ToString("N1"));
}
})
请求
异步错误
fail((Exception e) => {
})
异步请求
success((WebResult web,string result) => {
//放在最后
});
requestAsync();//主动调用异步方法
同步获取
requestNone();//不下载流
request();//返回字符串
requestData();//返回字节
download("保存目录", "保存文件名称(为空自动获取)");//下载文件
实例1
异步
Config.UserAgent = "测试的UserAgent";
Http.Get("https://www.baidu.com/s")
.data(new { wd = "GitHub - Haku-Men HttpLib", params_ = "关键字参数" })
.redirect(true)
.requestProgres((bytesSent, totalBytes) => {
double prog = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 上传", Math.Round(prog * 100.0, 1).ToString("N1"));
})
.responseProgres((bytesSent, totalBytes) => {
if (totalBytes>0)
{
double prog = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 下载", Math.Round(prog * 100.0, 1).ToString("N1"));
}
})
.fail((Exception e) => {
Console.Write(e.GetType());
Console.Write(e.Message);
})
.success((WebResult web,string result) => {
Console.Write(result);
});
实例2
同步
string result = Http.Get("https://www.baidu.com/s")
.data(new { wd = "GitHub - Haku-Men HttpLib", params_ = "关键字参数" })
.redirect(true)
.fail((Exception e) => {
Console.Write(e.GetType());
Console.Write(e.Message);
})
.request();
Console.Write(result);
实例下载文件异步
Http.Get("https://dldir1.qq.com/qqfile/qq/PCQQ9.6.2/QQ9.6.2.28756.exe")
.header(headerss)
.redirect(true)
.responseProgres((bytesSent, totalBytes) =>
{
Console.SetCursorPosition(0, 0);
if (totalBytes > 0)
{
double prog = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 下载 {1}/{2} ", Math.Round(prog * 100.0, 1).ToString("N1"), CountSize(bytesSent), CountSize(totalBytes));
}
else
{
Console.Write("{0} 下载 ", CountSize(bytesSent));
}
}).download(@"C:\Users\admin\Desktop", "qq.exe").ContinueWith(savapath =>
{
if (savapath.Result != null)
{
Console.WriteLine("下载成功保存至:" + savapath.Result);
}
else
{
Console.WriteLine("下载失败");
}
}).Wait();
实例获取域名IP
Http.Get("https://www.baidu.com").IP
实例全局错误捕获
Config.fail += (HttpCore core, WebResult result, Exception err)=>
{
Console.Write(err.GetType());
Console.Write(err.Message);
};
WebResult介绍
代码 | 解释 | 说明 |
---|---|---|
StatusCode | 状态代码 | 200 为正常 常见的有404 未找到、302 重定向、502 网址报错 |
ServerHeader | 服务头 | HTTP 200 OK BWS/1.1 Ver:1.1 |
AbsoluteUri | 最终的地址 | |
Type | 服务指示类型 | Content-Type |
Header | 响应头 | |
Cookie | Cookie | |
OriginalSize | 流原始大小 | 动态压缩 |
Size | 流大小 |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETCoreApp 3.0
- No dependencies.
-
.NETCoreApp 3.1
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
-
.NETStandard 2.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated | |
---|---|---|---|
3.0.0 | 71 | 4/24/2024 | |
2.1.0 | 85 | 2/20/2024 | |
2.0.9 | 75 | 2/20/2024 | |
2.0.8 | 542 | 10/12/2022 | |
2.0.7 | 450 | 8/10/2022 | |
2.0.6 | 441 | 7/28/2022 | |
2.0.5 | 481 | 7/16/2022 | |
2.0.4 | 436 | 7/14/2022 | |
2.0.2 | 450 | 7/14/2022 | |
1.0.6.2 | 540 | 4/10/2021 | |
1.0.6.1 | 436 | 3/15/2021 | |
1.0.5 | 413 | 2/27/2021 | |
1.0.4 | 418 | 2/13/2021 | |
1.0.3 | 412 | 2/3/2021 | |
1.0.2 | 369 | 2/2/2021 | |
1.0.1 | 403 | 2/2/2021 |
1.修复了PostMan上传文件问题
2.新增文件下载
3.升级框架优化