C#:
ส่งคำขอ HTTP
วิธีการ:
C# ทำให้การส่งคำขอ HTTP เป็นเรื่องง่ายด้วย HttpClient
นี่คือโครงสร้างของคำขอ GET:
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
using HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync("http://example.com");
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
}
ตัวอย่างผลลัพธ์ (ตัดทอน):
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
ลงลึก
HttpClient
ถูกนำมาใช้ใน .NET Framework 4.5 เพื่อทำให้การสื่อสาร HTTP เป็นเรื่องง่ายยิ่งขึ้น ก่อนหน้านั้น คุณอาจต้องรับมือกับคลาส HttpWebRequest
และ HttpWebResponse
ซึ่งมีความยุ่งยากมากขึ้น
มีวิธีอื่นๆ ในการส่งคำขอ HTTP ใน C# RestSharp
และ Flurl
เป็นสองไลบรารีของบุคคลที่สามที่ได้รับความนิยม เสนออินเตอร์เฟซที่ใช้งานง่ายขึ้นและคุณสมบัติเพิ่มเติม แต่ HttpClient
มักจะเพียงพอสำหรับความต้องการส่วนใหญ่
ในเรื่องการใช้งาน, HttpClient
ถูกออกแบบมาให้สามารถใช้ซ้ำได้สำหรับหลายๆ คำขอ การสร้างอินสแตนซ์ใหม่สำหรับทุกคำขอสามารถทำให้จำนวนซ็อกเก็ตที่ใช้งานได้หมดลงภายใต้ภาระที่หนักหน่วง ต้องระมัดระวังเสมอ และฉันหมายความว่าเสมอ ในการดูแลการทิ้งอินสแตนซ์ของ HttpClient
เพื่อหลีกเลี่ยงการรั่วไหลของทรัพยากร
ดูเพิ่มเติม
- เอกสารของ Microsoft เกี่ยวกับ
HttpClient
: https://docs.microsoft.com/th-th/dotnet/api/system.net.http.httpclient - ปฏิบัติการที่ดีที่สุดของ HttpClient: https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/
- การโต้ตอบกับ RESTful API ด้วย
RestSharp
: http://restsharp.org/ - Fluent HTTP (HTTP ทำได้ง่าย) ด้วย
Flurl
: https://flurl.dev/