Haskell:
Tải trang web

Làm thế nào:

Hãy thử với một ví dụ đơn giản sử dụng thư viện http-conduit của Haskell. Đầu tiên, cài đặt nó bằng cabal install http-conduit. Sau đó:

import Network.HTTP.Conduit -- Thư viện mạng chính
import qualified Data.ByteString.Lazy as L -- Chúng ta sẽ cần Lazy ByteStrings

-- Hàm để tải một trang web
downloadPage :: String -> IO L.ByteString
downloadPage url = simpleHttp url

main :: IO ()
main = do
    -- Sử dụng hàm để tải một trang
    noidung <- downloadPage "http://example.com"
    -- Làm gì đó với nội dung, như in ra nó
    L.putStr noidung

Chạy chương trình này, bạn sẽ thấy HTML của http://example.com trên màn hình của bạn.

Đi sâu

Các yêu cầu HTTP trong Haskell không luôn luôn gọn gàng như vậy. Các thư viện cũ hơn như HTTP yêu cầu nhiều mã dàn trải hơn. Với http-conduit, độ phức tạp được trừu tượng hóa đi.

Các phương pháp khác tồn tại, như lệnh wget trong một kịch bản shell hay thư viện requests của Python. Nhưng những cái này không luôn hiệu quả hoặc biểu đạt tốt trong môi trường chức năng của Haskell.

Bên dưới, http-conduit sử dụng một Quản lý để xử lý việc pooling kết nối và Keep-Alive cho HTTP1.1, làm cho nó hiệu quả hơn cho nhiều yêu cầu.

Xem thêm