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
- Để sử dụng nâng cao
http-conduit
: http-conduit trên Hackage - Để hiểu về ByteString: ByteString trên Hackage