38

我想使用Haskell中的Warp网络服务器创建一个网站。

因为我是 Haskell 初学者,所以像这样的例子对我来说太复杂了。

谁能给我看一个简单的、最小的例子来说明如何使用Warp

注意:这个问题故意显示没有研究工作,因为它是以问答方式回答的。

4

1 回答 1

58

这是一个使用 Warp 3.0+的最小Hello World应用程序。运行它,然后导航到http://localhost:3000. 此示例将显示Hello world.

为了使这个示例最小化,根本不处理 URL 路径(为任何路径传递相同的内容)。有关包含 URL 路径处理的稍长示例,请参阅Haskell Wiki

{-# LANGUAGE OverloadedStrings #-}

import Network.Wai (responseLBS, Application)
import Network.Wai.Handler.Warp (run)
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)

main = do
    let port = 3000
    putStrLn $ "Listening on port " ++ show port
    run port app

app :: Application
app req f =
    f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!"

2014-06-20 更新: Warp 3.0 包含一些 API 更改——将它们反映在代码中。

于 2014-03-24T20:49:21.093 回答