Gửi một yêu cầu HTTP

Elixir:
Gửi một yêu cầu HTTP

Cách thực hiện:

Sử dụng thư viện HTTPoison của Elixir. Nó gọn gàng, đơn giản và hoàn thành công việc.

  1. Thêm HTTPoison vào mix.exs của dự án:
defp deps do
  [
    {:httpoison, "~> 1.8"}
  ]
end
  1. Chạy mix deps.get trên terminal để tải phụ thuộc.

  2. Bây giờ bạn đã sẵn sàng để gửi một yêu cầu GET:

case HTTPoison.get("https://jsonplaceholder.typicode.com/posts/1") do
  {:ok, %HTTPoison.Response{status_code: 200, body: body}} ->
    IO.inspect(body) # bạn đã có dữ liệu!
  {:error, %HTTPoison.Error{reason: reason}} ->
    IO.inspect(reason) # xử lý lỗi
end

Kết quả mẫu: một chuỗi JSON của dữ liệu bài viết từ API placeholder.

Đi sâu hơn

Trong lịch sử, bạn sẽ sử dụng :httpc đi kèm với Erlang/OTP hoặc HTTPotion của Elixir. HTTPoison hiện nay phổ biến hơn, với cú pháp sạch hơn và được xây dựng dựa trên Hackney, một HTTP client mạnh mẽ cho Erlang.

Các lựa chọn thay thế cho HTTPoison bao gồm Tesla – một HTTP client linh hoạt với hỗ trợ middleware, và Mint – một HTTP client cấp thấp, sáng giá.

Về mặt triển khai, những thư viện này xử lý các vấn đề như pooling kết nối, SSL, và keep-alive, những thứ khó khăn nhưng thiết yếu cho các yêu cầu HTTP hiệu quả. Chúng hoạt động như những người thủ thư thân thiện, xử lý những công việc khó khăn để bạn không phải tự mình lục lọi qua chúng.

Xem thêm