Haskell:
Gửi một yêu cầu HTTP
Làm thế nào:
Chúng ta hãy bắt đầu với những việc thú vị. Bạn cần các gói http-client
và http-client-tls
. Thiết lập stack của bạn và thêm chúng vào file package.yaml
hoặc .cabal
. Sau đó, chạy stack build
hoặc các lệnh phù hợp khác để tải chúng.
Dưới đây là một yêu cầu GET đơn giản:
import Network.HTTP.Client
import Network.HTTP.Client.TLS
import qualified Data.ByteString.Lazy.Char8 as L8
main :: IO ()
main = do
manager <- newManager tlsManagerSettings
request <- parseRequest "http://httpbin.org/get"
response <- httpLbs request manager
L8.putStrLn $ responseBody response
Điều này sẽ in ra JSON bạn nhận được từ httpbin.org
.
Khám Phá Kỹ Lưỡng
Trong quá khứ, việc thực hiện yêu cầu HTTP trong Haskell ít trực tiếp hơn, nhưng những thư viện như http-client
đã làm đơn giản hóa quá trình này.
Có lựa chọn khác? Chắc chắn rồi. Có wreq
, req
, và nhiều người khác, thường với cú pháp đơn giản hoặc tính năng thêm. Nhưng http-client
giống như cây dao đa năng đáng tin cậy trong ngăn kéo của bạn - nó luôn hoàn thành công việc.
Phần nội dung, http-client
sử dụng một Manager
để xử lý các kết nối. Nó hiệu quả và tái sử dụng socket. Bạn có thể điều chỉnh nó, nhưng mặc định là đủ để bắt đầu.
Xem Thêm
Để mở rộng bộ công cụ của bạn, hãy kiểm tra những cái sau: