C# HttpLib使用详解
HttpLib很好用的Http请求类库,HttpLib 可以用来简化在 C# 应用中异步的访问 Web 服务的操作。
支持很多种方法:
using JumpKick.HttpLib.Builder;
namespace JumpKick.HttpLib
{
public static class Http
{
public static RequestBuilder Delete(string url);
public static RequestBuilder Get(string url);
public static RequestBuilder Head(string url);
public static RequestBuilder Patch(string url);
public static RequestBuilder Post(string url);
public static RequestBuilder Put(string url);
}
}
用法
一、引用库。
using Redslide.HttpLib
二、GET用法
1、获取网页数据:
Http.Get("https://jthorne.co.uk/httplib").OnSuccess(result =>
{
Console.Write(result);
}).OnFail(webexception =>
{
Console.Write(webexception.Message);
}).Go();
如果想通过GET方式传参并获取数据,传参方式只能是在链接后拼接字符串形式,不可以Form或Body形式传参,这两种方式只适用于POST。
Http.Get("https://jthorne.co.uk/httplib?name={0}&userid={1}", "Jame", "23").OnSuccess(result =>
{
Console.Write(result);
}).OnFail(webexception =>
{
Console.Write(webexception.Message);
}).Go();
2、下载
Http.Get("https://jthorne.co.uk/httplib").DownloadTo(@"C:\httplib.html", onProgressChanged: (bytesCopied,totalBytes) =>;
{
if (totalBytes.HasValue)
{
("Downloaded: " + (bytesCopied/totalBytes)*100 + "%");
}
Console.Write("Downloaded: " + bytesCopied.ToString() + " bytes");
},
onSuccess: (headers) =>
{
UpdateText("Download Complete");
}).Go();
三、POST用法
1、Form形式传参
Http.Post("https://jthorne.co.uk/httplib").Form(new { name = "James", username = "j6mes" }).OnSuccess(result =>
{
Console.Write(result);
}).OnFail(webexception =>
{
Console.Write(webexception.Message);
}).Go();
2、Body形式传参(json格式)
public int m_userId; //下发人id
public string m_title; //下发任务标题
public string m_content; //下发任务内容
Http.Post("https://jthorne.co.uk/httplib").Body("application/json", "{ userId :m_userId,title : m_title,content : m_content}"
).OnSuccess(result =>
{
Dialog.Information("成功");
Dialog.Information("result:" + result);
}).OnFail(result =>
{
Dialog.Information("失败");
Dialog.Information("result:" + result);
}).Go();
3、form-urlencoded方式传参
Http.Post("https://jthorne.co.uk/httplib").Body("name=admin"
).OnSuccess(result =>
{
Console.Write(result);
}).OnFail(result =>
{
Console.Write(webexception.Message);
}).Go();
4、Upload上传文件
Http.Post("https://jthorne.co.uk/httplib")
.Upload(files:
new[] {
new NamedFileStream("myfile", "photo.jpg", "application/octet-stream", File.OpenRead(@"C:\photo.jpg"))
}).Go();
Http.Post("https://jthorne.co.uk/httplib").Form(new { name = "James", username = "j6mes" }
).Upload(
files:
new[] {
new NamedFileStream("myfile", "photo.jpg", "application/octet-stream", File.OpenRead(@"C:\photo.jpg"))
},
onProgressChanged:
(bytesSent, totalBytes) =>
{
Console.WriteLine("Uploading: " + (bytesSent / totalBytes)*100 + "% completed");
})
.OnSuccess(result=>
{
Console.WriteLine(result);
}).Go();
四、Delete用法
Http.Delete("https://jthorne.co.uk/httplib").Go();
总结
最后附几个链接:
1、HttpLib官网链接,里面有HttpLib的各种用法,以及github的源码地址等。
2、参考了另一博主的博客,为表示感谢,也给出链接
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2022-02-07 unity+InputField事件,按enter确定,监听变化
2022-02-07 Unity--InputField回车输入显示
2022-02-07 Unity3D 保存游戏的几种方式
2022-02-07 Unity数据存储Sqlite的使用
2022-02-07 Unity(游戏)中五种数据存储的方法
2022-02-07 Unity 中保存和载入游戏
2022-02-07 Unity中游戏的存档与读档