Thành phần ZHI.ZSystem là một bộ công cụ phát triển .NET thuộc khung ZHI Framework. Nó cung cấp nhiều phương thức mở rộng cho các đối tượng bên trong thư viện System của .NET, cũng như tích hợp hàng loạt lớp trợ giúp hữu ích cho lập trình hàng ngày. Đặc biệt, nó được viết dựa trên mục tiêu khung .NET Standard 2.0, vì vậy cả kỹ sư .NET Core và .NET Framework đều có thể sử dụng mà không cần quan tâm đến phiên bản.
Địa chỉ GitHub: https://github.com/peashooters/zhi
Địa chỉ Gitee: https://gitee.com/peashooters/zhi
Tài liệu chính thức: https://peashooters.gitee.io/zhi-doc
Trong bài viết này, chúng ta sẽ tìm hiểu về lớp trợ giúp HttpHelper, dùng để gửi các yêu cầu HTTP. Dưới đây là ví dụ minh họa cách sử dụng:
Kết quả yêu cầu GET (địa chỉ trang chủ tìm kiếm sản phẩm của Taobao):
Tiếp theo, chúng ta sẽ xem cách gửi yêu cầu POST:
Kết quả yêu cầu POST (địa chỉ dịch thuật Baidu):
Như bạn thấy, việc gửi yêu cầu GET hoặc POST rất đơn giản khi sử dụng HttpHelper. Không cần phải tạo đối tượng yêu cầu, trải nghiệm sử dụng cực kỳ tiện lợi.
// Yêu cầu GET HTTP
var diaChi = "https://suggest.taobao.com/sug";
var thoiGianHienTai = DateTime.Now.ToUtcTimeStamp(TimeStampUnit.Millisecond);
var traLoi = string.Empty;
// Tham số q: từ khóa tìm kiếm
// Tham số _: thời gian hiện tại
var thamSo = "code=utf-8&q=pen&extras=1area=c2c&bucketid=atb_searchpid=mm_26632258_3504122_32538762&unid=&clk1=3316c22850177cb5649f1a983455721b&callback=jsonp4&_=" + thoiGianHienTai.ToString();
var duongDan = string.Format("{0}?{1}", diaChi, thamSo);
traLoi = HttpHelper.HttpGet(duongDan);
Console.WriteLine("Kết quả yêu cầu (chỉ địa chỉ): {0}", traLoi);
var danhSachDauMuc = new Dictionary<string, string>();
danhSachDauMuc.Add("referer", "https://uland.taobao.com/");
danhSachDauMuc.Add("authority", "suggest.taobao.com");
traLoi = HttpHelper.HttpGet(duongDan, danhSachDauMuc);
Console.WriteLine("Kết quả yêu cầu (địa chỉ, đầu mục): {0}", traLoi);
Kết quả yêu cầu (chỉ địa chỉ):
jsonp4({"result":[["notebook","142067.3502377855"],["pen case","311787.0411424312"],["notebook","334875.0280249376"],["pen holder","373780.2144637851"],["pen box","250278.82041203202"],["large pen case","97785.50406100812"],["notebook child","47486.52840646651"],["pen refill","271206.81850920705"],["notebook bag","115447.5925248509"],["ins pen case","16469.91278123504"]]})
Kết quả yêu cầu (địa chỉ, đầu mục):
jsonp4({"result":[["notebook","142067.3502377855"],["pen case","311787.0411424312"],["notebook","334875.0280249376"],["pen holder","373780.2144637851"],["pen box","250278.82041203202"],["large pen case","97785.50406100812"],["notebook child","47486.52840646651"],["pen refill","271206.81850920705"],["notebook bag","115447.5925248509"],["ins pen case","16469.91278123504"]]})
// Yêu cầu POST HTTP
var diaChiBaidu = "https://fanyi.baidu.com/langdetect";
var noiDungGuiDi = "query=a";
var traLoiPost = string.Empty;
traLoiPost = HttpHelper.HttpPost(diaChiBaidu, noiDungGuiDi);
Console.WriteLine("Kết quả yêu cầu POST (địa chỉ, nội dung): {0}", traLoiPost);
var danhSachDauMucPost = new Dictionary<string, string>();
danhSachDauMucPost.Add("origin", "https://fanyi.baidu.com");
danhSachDauMucPost.Add("referer", "https://fanyi.baidu.com/");
danhSachDauMucPost.Add("content-type", "application/x-www-form-urlencoded; charset=UTF-8");
traLoiPost = HttpHelper.HttpPost(diaChiBaidu, noiDungGuiDi, null, danhSachDauMucPost);
Console.WriteLine("Kết quả yêu cầu POST (địa chỉ, nội dung, đầu mục): {0}", traLoiPost);
Kết quả yêu cầu POST (địa chỉ, nội dung): {"errno":1000,"errmsg":"\u672a\u77e5\u9519\u8bef"}
Kết quả yêu cầu POST (địa chỉ, nội dung, đầu mục): {"errno":1000,"errmsg":"\u672a\u77e5\u9519\u8bef"}