Tom.HttpLib
2.0.2
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.2
NuGet\Install-Package Tom.HttpLib -Version 2.0.2
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.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Tom.HttpLib --version 2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Tom.HttpLib, 2.0.2"
#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.2
// Install Tom.HttpLib as a Cake Tool
#tool nuget:?package=Tom.HttpLib&version=2.0.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
HttpLib
便捷的Http库
如果你喜欢 HttpLib 项目,请为本项点亮一颗星 ⭐!
已上传NuGet:https://www.nuget.org/packages/Tom.HttpLib
作者 | Tom |
---|---|
17379620 |
目录
示例
创建请求
Http.Get("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参数" })
data(new List<Val> {
new Val("test1","测试1"),
new Val("test2","测试2")
})
data(new Files("文件地址"))
添加请求头
header(new { accept = "*/*", userAgent = "Chrome" })
header(new List<Val> {
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 进度 = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 上传", (Math.Round(进度, 2) * 100.0));
})
下载
responseProgres((bytesSent, totalBytes) => {
if (totalBytes>0)
{
double 进度 = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 下载", (Math.Round(进度, 2) * 100.0));
}
})
请求
异步错误
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 进度 = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 上传", (Math.Round(进度, 2) * 100.0));
})
.responseProgres((bytesSent, totalBytes) => {
if (totalBytes>0)
{
double 进度 = (bytesSent * 1.0) / (totalBytes * 1.0);
Console.Write("{0}% 下载", (Math.Round(进度, 2) * 100.0));
}
})
.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);
WebResult介绍
代码 | 解释 | 说明 |
---|---|---|
StatusCode | 状态代码 | 200 为正常 常见的有404 未找到、302 重定向、502 网址报错 |
ServerHeader | 服务头 | HTTP 200 OK BWS/1.1 Ver:1.1 |
IP | 请求域的IP地址 | |
AbsoluteUri | 最终的地址 | |
Type | 服务指示类型 | Content-Type |
Header | 响应头 | |
Cookie | Cookie | |
SetCookie | Set-Cookie | |
OriginalSize | 流原始大小 | 动态压缩 |
Size | 流大小 | |
FileName | 文件名称 | 返回文件类型才有Content-Disposition |
Location | 重定向网址 | 302 |
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 | 72 | 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.升级框架优化