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、参考了另一博主的博客,为表示感谢,也给出链接

posted @   多见多闻  阅读(654)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 全程不用写代码,我用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中游戏的存档与读档
点击右上角即可分享
微信分享提示